<selectKey keyProperty="id" resultType="int" order="AFTER"> select LAST_INSERT_ID() </selectKey>
可是我在实际使用中,在service层做了注解型配置事务,当一个事务未执行完,select LAST_INSERT_ID() 这行SQL当做单独一个原子操作,不会立即执行。会等到insert操作完毕后,才会执行。
接着我开始排查Mybatis的配置
<setting name="defaultExecutorType" value="BATCH" />
这行引起了我的留意,然后我注释这行配置,成功解决。
具体原因暂时没时间写,回头再补上吧。