使用hibernate无法理解删除时的JPA级联行为

时间:2015-02-06 13:52:28

标签: java hibernate jpa orm hibernate-cascade

我有三个表/实体,分别是Event,Participant和ParticipantEvent。 ParticipantEvent有点像多对多关系的连接表,但我把它作为一个实体。映射就是这样的。

public class Event {

    @OneToMany(mappedBy = "event", cascade=CascadeType.REMOVE)
    private List<ParticipantEvent> participantEvents;

}

public class Participant {

    @OneToMany(mappedBy = "participant", cascade=CascadeType.ALL)
    private List<ParticipantEvent> participantEvents;

}

public class ParticipantEvent {

    @ManyToOne
    private Event event;

    @ManyToOne
    private Participant participant;
}

当我删除一个事件时,hibernate不会触发ParticipantEvent的删除。它给出了外键约束违规错误,直到我给ParticipantEvent - &gt;参与者级联到ALL。这将触发ParticipantEvent上的删除,但也会删除Participant表中的数据,但我不想删除Participant表中的任何数据。

我迷失了,我不认为ParticipantEvent DML应该依赖于参与者或事件。

0 个答案:

没有答案