当前使用版本(必须填写清楚,否则不予处理)
3.3.0
该问题是怎么引起的?(最新版上已修复的会直接close掉)
由于业务需要, 在CRUD中, 更新操作是先去删除某条记录,然后重新新增前端传递的数据,当然前端需要将该数据的原有主键原封不动的传递回来,最主要是保持主键不变.
重现步骤
主键策略如果使用AUTO,数据库自增,在修改的时候,前端传递的主键是已知的,但是AUTO下,手动设置的主键会被自增主键覆盖.而新增和修改又是调用的同一个方法,因此新增的时候,主键又是不知道的需要自增,使用了INPUT后,在修改的情况下,可以手动设置主键了. 但是使用INPUT后,有个情况,后续的代码中需要提前使用到新增所得到的主键.因此需要返回主键,而INPUT下,不会将新增的主键返回回来
建议不管哪种主键策略下,都尝试将数据库中新增的主键返回回来.当然,也可能只有我个人是这种情况
Comment From: qmdx
数据库自增就是自增,不能和自定义的混合在一张表中使用否则存在冲突问题,该建议不存在意义
【 AUTO 的时候需要通过 entity.getId 获取数据库返回 ID 】
【 INPUT 是你自定义 set 的值不存在返回问题 】