Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 如何持久化对同一临时子级有两个引用的父级?_Hibernate_Persistence_Parent Child_Hibernate Mapping - Fatal编程技术网

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();

我有一个hibernate父子关系,其中父对象与其中一个子对象有单独的一对一关系。如果引用的子对象是暂时的,如何持久化父对象和子对象

我有这样一个模式:

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字段来解决这个问题。但是,如果我真的需要这样做,我将如何正确地持久化数据