Java 使用Hibernate替换一组记录的正确方法是什么
我们的应用程序会收到一个记录列表,这些记录将替换现有的一组记录。每个记录都有一个基于序列的主键和另一个字段上的唯一约束,该字段是其他字段上的外键(即备用键) 事情是这样的:Java 使用Hibernate替换一组记录的正确方法是什么,java,hibernate,jpa,Java,Hibernate,Jpa,我们的应用程序会收到一个记录列表,这些记录将替换现有的一组记录。每个记录都有一个基于序列的主键和另一个字段上的唯一约束,该字段是其他字段上的外键(即备用键) 事情是这样的: for each old record delete the old record next for each new record insert new record next 问题是Hibernate在删除之前运行insert,因此引发了唯一的约束冲突。新记录与旧记录具
for each old record
delete the old record
next
for each new record
insert new record
next
问题是Hibernate在删除之前运行insert,因此引发了唯一的约束冲突。新记录与旧记录具有相同的备用密钥
如果我删除唯一约束,它就可以正常工作
这样做的正确方法是什么 两个建议:
您是否尝试在删除发生后刷新EntityManager?事实上,虽然刷新确实解决了问题,但我已决定正确处理并合并更改的记录。所以谢谢你的两个建议!