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
Hibernate merge,其中@OneToOne关系和孤立删除设置为true,新实体不删除旧实体_Hibernate_Jakarta Ee_Jpa_Orm_One To One - Fatal编程技术网

Hibernate merge,其中@OneToOne关系和孤立删除设置为true,新实体不删除旧实体

Hibernate merge,其中@OneToOne关系和孤立删除设置为true,新实体不删除旧实体,hibernate,jakarta-ee,jpa,orm,one-to-one,Hibernate,Jakarta Ee,Jpa,Orm,One To One,我有一个简单的例子。当我尝试合并包含新父实体(具有自动生成的id)的子实体时,我希望删除旧的相关父实体。但它什么也没做 儿童: @OneToOne(cascade = CascadeType.ALL, mappedBy = "child", orphanRemoval = true) private Parent parent; 家长: @JoinColumn(name = "child_id") @OneToOne private Child child; @JoinTable(name

我有一个简单的例子。当我尝试合并包含新父实体(具有自动生成的id)的子实体时,我希望删除旧的相关父实体。但它什么也没做

儿童:

@OneToOne(cascade = CascadeType.ALL, mappedBy = "child", orphanRemoval = true)
private Parent parent;
家长:

@JoinColumn(name = "child_id")
@OneToOne
private Child child;

@JoinTable(name = "parent_other_child",
        joinColumns = {@JoinColumn(name = "parent_id")},
        inverseJoinColumns = {@JoinColumn(name = "other_child_id")})
@ManyToMany(
private List<OtherChild> otherChildList;
@JoinColumn(name=“child\u id”)
@奥内托内
独生子女;
@JoinTable(name=“parent\u other\u child”,
joinColumns={@JoinColumn(name=“parent_id”)},
inverseJoinColumns={@JoinColumn(name=“other\u child\u id”)}
@许多(
私人名单或儿童名单;
有人知道怎么管理吗

我知道解决方法-使用@OneToMany/@ManyToOne,但如果可能的话,我希望避免这种情况

编辑:


一般来说,它可以按预期工作(hibernate尝试删除父实体),但当父实体@ManyToMany与其他实体相关时(哪个父实体也是该关系的所有者)-它不会删除父实体-因为它仍然有关系表中的引用。

您能澄清您的问题吗?
孤立删除
选项集在哪里?对不起,我忘了将其添加到子实体中-我刚刚更正了它,您希望它在删除父实体时删除
子实体
实体,或者删除
父实体
实体en删除子项1?我想删除父项。因此,如果子项具有id=1的父项,并且我将该子项与id=2的新父项合并,我想删除id=1的父项,并将第二个父项添加到数据库中。您是否尝试调用
em.merge()
在您的
子对象上
是否忘记了通过setters
setParent
setChild
,在两侧设置关系?我在这里的工作与预期一样。