注册

CrudRepository.save()的返回值,自增的ID不对

叫我小李就好 2022/02/22 1062 3

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:centOS / Java
【问题描述】*:

项目mysql迁移至DM8过程中发生的小问题。DM8数据库是用DTS工具从mysql迁移过去的。
调用org.springframework.data.repository.CRUDRepository.save方法,JAVA代码如下:
platformAbility = platformAbilityRepository.save(platformAbility);

其中platformAbility是新建的示例,要insert入表
image.png

如图,刚才插入的记录是DMTest2,ID是自增字段,ID=20没错。
但是上面那句Java代码,save()方法返回的实例platformAbility.id = 7。也就是说,JPA的save()方法只读了表中的count,就返回了错误的id=7。

因为老代码中所有表的删除逻辑,都是物理删除,修改比较麻烦。目前只能先save()再find()避免这种问题。
想问问这是方言包的问题吗?怎么设置数据库可以在不改Java代码的前提下,避免这种情况

回答 0
暂无回答
扫一扫
联系客服