多対1の関係を持つ「子」と「親」の2つのテーブルがあるとしましょう。親レコードが削除された場合、子エントリを削除する必要があります。
parent.hbm で 1 対多の関連付けを作成し、cascade="all-delete-orphan" を設定して、親から子テーブルをリンクしても問題ありません。
問題は、親側で 1 対多の関係を望んでいないため、子側で多対 1 を作成したことです。その理由は、子テーブルがかなり大きく、親を使用するたびに何百ものレコードを抽出したくないからです。したがって、私の構成は次のようになります。
child.hbm:
<many-to-one name="parent" class="com.example.Parent" column="parentid"/>
一方、parent.hbm には子との関連付けはありません。
問題は次のとおりです。子が多対1で親にリンクされている場合、親を削除するときにHibernateに子テーブルからレコードを削除させる方法は?
ありがとう。