JPA/Hibernate:ManyToMany删除关系

tau*_*oge 10 java hibernate jpa

我有两个类,比如Group和Person,它有一个映射在JoinTable中的ManyToMany-Relation.

如果我删除与组有关系的Person,我想从连接表中删除该条目(不删除组本身!).

如何定义级联注释?我没有找到真正有用的文档,但有几个未解决的董事会讨论......

public class Group {
    @ManyToMany(
        cascade = { javax.persistence.CascadeType.? }, 
        fetch = FetchType.EAGER)
    @Cascade({CascadeType.?})
    @JoinTable(name = "PERSON_GROUP", 
        joinColumns = { @JoinColumn(name = "GROUP_ID") }, 
        inverseJoinColumns = { @JoinColumn(name = "PERSON_ID") })
    private List<Person> persons;    
}

public class Person {
    @ManyToMany(
        cascade = { javax.persistence.CascadeType.? },
        fetch = FetchType.EAGER, 
        mappedBy = "persons", 
        targetEntity = Group.class)
    @Cascade({CascadeType.?})
    private List<Group> group;
}
Run Code Online (Sandbox Code Playgroud)

Gri*_*iff 0

我相信你想要的是:

cascade = CascadeType.ALL
Run Code Online (Sandbox Code Playgroud)

要删除数据库关系,请从每个组中删除关联。从 Group.persons 集合中删除人员,并从 Person.group 集合中删除 Group,然后保留您的人员对象。