最近使用MyBatis遇到一个问题,在for循环中调用获取序列的方法,返回值总是一个。
<select id="queryUcfUserBatchImportId" resultType="java.lang.String">
SELECT UCF_USER_BATCH_IMPORT_SEQ.NEXTVAL FROM DUAL
</select>
后来百度一下才知道是因为缓存的原因,禁用MyBatis缓存后成功获取到增长序列
<select id="queryUcfUserBatchImportId" resultType="java.lang.String" useCache="false" flushCache="true">
SELECT UCF_USER_BATCH_IMPORT_SEQ.NEXTVAL FROM DUAL
</select>
flushCache为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。