首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring :没有现有Id的更新?

Spring :没有现有Id的更新?
EN

Stack Overflow用户
提问于 2022-06-13 19:02:24
回答 1查看 393关注 0票数 0

我正在使用Spring和JPA。

为了保存和更新记录,有一个保存CrudRepository的方法。

我使用生成的长id作为记录的主键。

现在我需要更新一个已经存在的记录。如果主键id与数据库中已经存在的值不匹配,复制异常将失败。如果没有给出id,JPA将假设插入,这将失败,因为旧记录已经存在。

那么,最好的策略是什么呢?

在进行保存以更新我的记录之前,我不想查找现有记录的id。

id是否有一些默认值,用于将其标记为update而不是insert?

EN

回答 1

Stack Overflow用户

发布于 2022-06-13 19:15:47

我不认为Hibernate有这样的功能。有些数据库的本地功能(insert ignore in MySQL或Postgres中的on conflict do nothing )支持这一点,但是您必须自己编写SQL。而且有些数据库根本没有这个功能。

可能,使用Hibernate的唯一方法是处理约束冲突异常。注意,如果发生这种情况,您可能无法继续处理事务/会话,因为Hibernate警告您,如果会话/EntityManager引发异常,就无法进一步可靠地使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72607864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档