阿里读写分离数据源SELECT LAST_INSERT_ID()获取不到id
Posted 雪云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里读写分离数据源SELECT LAST_INSERT_ID()获取不到id相关的知识,希望对你有一定的参考价值。
异常现象
insert 通过 mybatis 以下语法给领域类 赋予的 id 值为0. 后续根据主键的update操作失效。且无异常抛出
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
产生原因
因为 执行插入语句 是在 写库 , 而SELECT LAST_INSERT_ID() 是在读库执行。
解决方案 ##
添加 /FORCE_MASTER/ 注解 使该sql 走 master 节点,代码如下
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
/*FORCE_MASTER*/
SELECT LAST_INSERT_ID()
</selectKey>
添加事物
可以参考 :https://help.aliyun.com/document_detail/51073.html
以上是关于阿里读写分离数据源SELECT LAST_INSERT_ID()获取不到id的主要内容,如果未能解决你的问题,请参考以下文章