获取主键时返回的总是null
经过网上搜索资料,感觉
<selectKey keyProperty="companyUserId" order="AFTER" resultType="java.lang.Integer">
SELECT SCOPE_IDENTITY()
</selectKey>
是一个bug
而且是存在与mabatis框架下的bug
原因猜想
1、insert语句和select scope_identity()不是同时执行,而是分开执行的
先执行insert语句,之后再发起一个sql执行select scope_identity(),所以获取不了自增主键
2、insert语句和select scope_identity()处于同一个事务中,当跑insert之后跑select scope_identity()语句,由于处于事务中,事务并没提交,所以获取不了主键id
解决方法:
使用jdbc的useGeneratedKeys="true" keyProperty="companyUserId"属性