现象:在循环内进行查询序列的时候,明明使用的是.NEXTVAL,但是多次查询出同一结果
原因:在执行C(创建)、U(更新)、D(删除)之前,MyBatis不会清除缓存,导致查询的结果总是一致
解决方案:在查询方法上增加 useCache="false" flushCache="true"
例:
<select id="queryNextVal" resultType="java.lang.String" databaseId="oracle" useCache="false" flushCache="true">
select sortid_seq.NEXTVAL from dual
</select>
其中:useCache="false"代表该结果不使用二级缓存,flushCache="true"代表清空缓存信息。
参照:https://blog.csdn.net/u014749862/article/details/80297943