复合主键的java hibernate问题
我在使用Hibernate时遇到了一些问题。我们需要保存一个对象及其子对象。每个子级都有一个复合主键。触发器将插入密钥的一个属性。在调用saveOrUpdate(Object)
之前,将从程序中设置另一个属性
但我们无法保存该对象。Hibernate抛出异常Same identifier is already exists in the session
我尝试过session.clear()
,但得到了相同的异常。当我尝试session.merge()
时,只有最后一个孩子得救了,其他孩子被忽略了
# 1 楼答案
如果在同一个Hibernate会话中不需要保存对象,可以在保存后立即使用^{} 分离它们:
或者,Hibernate论坛中的这个条目可能会有所帮助:Before Insert Trigger and ID generator。有一个^{} 的实现,你可以集成它来满足你的需求