0

Event、Participant、ParticipantEvent という 3 つのテーブル/エンティティがあります。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