繁体   English   中英

复合主键的休眠问题

[英]hibernate issues with composite primary key

我在使用Hibernate时遇到了一些问题。 我们需要将一个对象及其子对象一起保存。 每个孩子都有一个复合主键。 按键的一个属性将由触发器插入。 在调用saveOrUpdate(Object)之前,将从程序中设置另一个属性。

但是我们无法保存该对象。 Hibernate引发异常Same identifier is already exists in the session

我尝试了session.clear() ,但是遇到了同样的异常。 当我尝试session.merge() ,只有最后一个孩子被保存,其他孩子被忽略。

如果不再需要在同一Hibernate Session中保存对象,则可以在使用Session.evict()保存之后分离它们:

// children is the collection of detached children, ready to save
for (Child child : children){
    session.save(child);
    session.evict(child);
}

另外,在Hibernate论坛中的该条目可能会有所帮助: 在Insert Trigger和ID generator之前 有一个AbstractPostInsertGenerator的实现,可以将其集成以满足您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM