0

我有三个表/实体,分别是 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;
}

当我删除一个事件时,休眠不会触发 ParticipantEvent 的删除。在我将 ParticipantEvent -> Participant cascade 给 ALL 之前,它会给出外键约束违规错误。这将在 ParticipantEvent 上触发删除,但也会从 Participant 表中删除数据,但我不想从 Participant 表中删除任何数据。

我在这里迷路了,我认为 ParticipantEvent DML 不应该依赖于 Participant 或 Event。

4

0 回答 0