gpt4 book ai didi

java - Hibernate 单向@ManyToMany : delete without constraint violations?

转载 作者:行者123 更新时间:2023-11-30 11:48:19 24 4
gpt4 key购买 nike

我有一个 A 类:

@Entity
public class A {
...
@ManyToMany
private Set<Ref> refs = new HashSet<Ref>();
...
}

还有一个类引用:

@Entity
public class Ref {
// no link to A
}

我想删除 A 和 A_Ref 但不删除 Ref,但我得到一个 org.hibernate.exception.ConstraintViolationException

有没有一种简单的方法可以做到这一点,还是我应该明确地创建一个 A_Ref 类?

谢谢

编辑:我试图直接在 hql 中删除我的 A 列表。我在对象中做到了(打破了关系)并且它起作用了(级联 + 孤儿删除)。

最佳答案

我不确定,如果我猜对了,但据我了解,我的第一个猜测是,您没有使用所有必要的注释来确保 hibernate 会自动删除 Ref 中的必要引用。

在多对多关系中,您可以使用 joinTables 和 cascadetypes确保 hibernate 知道在哪里删除所有必要的关系,而无需为其创建自己的 domainObject。

有很多很好的指南来管理它。首先查看来自 mkyong 的指南看起来不错。注意:他注释了 getter 而不是变量声明! (这只是一个品味问题)。

关于java - Hibernate 单向@ManyToMany : delete without constraint violations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883266/

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