Hibernate 如何持久化对同一临时子级有两个引用的父级?
我有一个hibernate父子关系,其中父对象与其中一个子对象有单独的一对一关系。如果引用的子对象是暂时的,如何持久化父对象和子对象 我有这样一个模式:Hibernate 如何持久化对同一临时子级有两个引用的父级?,hibernate,persistence,parent-child,hibernate-mapping,Hibernate,Persistence,Parent Child,Hibernate Mapping,我有一个hibernate父子关系,其中父对象与其中一个子对象有单独的一对一关系。如果引用的子对象是暂时的,如何持久化父对象和子对象 我有这样一个模式: PARENT(PARENT_ID, SOME_DATA, SPECIAL_CHILD_ID) CHILD(CHILD_ID, PARENT_ID, CHILD_DATA) class Parent { Child getSpecialChild(); SortedSet<Child> getChildren();
PARENT(PARENT_ID, SOME_DATA, SPECIAL_CHILD_ID)
CHILD(CHILD_ID, PARENT_ID, CHILD_DATA)
class Parent {
Child getSpecialChild();
SortedSet<Child> getChildren();
}
class Child {
Parent getParent();
}
…以及这样的实体:
PARENT(PARENT_ID, SOME_DATA, SPECIAL_CHILD_ID)
CHILD(CHILD_ID, PARENT_ID, CHILD_DATA)
class Parent {
Child getSpecialChild();
SortedSet<Child> getChildren();
}
class Child {
Parent getParent();
}
类父类{
子getSpecialChild();
SortedSet getChildren();
}
班童{
父getParent();
}
我正在同一事务中创建临时父级和临时子级。当我尝试持久化父对象(级联specialChild和子对象)时,我从DB中得到一个唯一的约束错误,因为hibernate尝试生成两个插入(一个用于specialChild,另一个用于子对象中的同一个子对象)。我已经使用调试器验证了specialChild和children()持有瞬态子对象的相同实例
在我的实际业务案例中,我可以通过删除特殊的\u CHILD\u ID字段来解决这个问题。但是,如果我真的需要这样做,我将如何正确地持久化数据