gpt4 book ai didi

java - Hibernate 复合主键问题

转载 作者:行者123 更新时间:2023-12-01 15:41:56 26 4
gpt4 key购买 nike

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

但是我们无法保存该对象。 Hibernate 抛出异常 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 论坛中的此条目可能会有所帮助:Before Insert Trigger and ID generator 。有一个 AbstractPostInsertGenerator 的实现您可以集成以满足您的需求。

关于java - Hibernate 复合主键问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com