<select id="getCode" resultType="java.lang.String"> select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select> 上述mybatis代码在调用是总是获取到同一个序列的值,查询相关资料得知是mybatis的缓存问题: 加上useCache="false" flushCache="false" 属性即可:
<select id="getCode" resultType="java.lang.String" useCache="false" flushCache="false"> select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
本文介绍了一个关于MyBatis在获取序列号时遇到的缓存问题及解决方案。通过调整SQL映射文件中的配置,加入useCache=false和flushCache=false属性,可以有效避免重复获取相同序列号的问题。
2495





