2 つのクラス間の多対多の関係を定義しました。イベントと人物 (別のデータベース テーブル person_event で定義)。ここで、人を削除したいとします。そのため、イベントに関連するすべての関連付けも person_event テーブルから削除する必要があります。つまり、カスケード ON DELETE が必要です。
シナリオを考えてみましょう:
- "events" テーブルには、id=1、2、3 で識別される 3 つのイベントが含まれています。
- "person" テーブルには、id=4、5 で識別される 2 人の人物が含まれています。
- 1-4、2-4、3-5 などの関連付けを含む「person_event」テーブル
ここで、Hibernate.delete() を使用してイベント 1 を削除するとします。これにより、event1 と関連付け person_event1-4 だけでなく、person4 も削除されます。
問題は、person4 が別のテーブルによって参照され、それが外部制約例外をスローすることです...イベントと関連付け person_event だけを削除するように NHibernate を構成するにはどうすればよいですか?