クラス「キャラクター」とクラス「派閥」があります。キャラクターには派閥があります。派閥は多くのキャラクターが使用できます。キャラクターが永続化されると、派閥が永続化されます。派閥を参照するキャラクターがなくなったら、データベースから削除したいと思います。
1対1の関係だった時は、そのまま使えるから楽だった
@Persistent(dependent = "true")
不要になったときに削除します。しかし、別のキャラクターがまだファクションを必要としている可能性があるため、それはもはや不可能です。したがって、character1 を削除しようとして、彼が character2 と同じ派閥を使用している場合、次の例外が発生します。
java.sql.SQLIntegrityConstraintViolationException: DELETE on table 'FACTION' caused a violation of foreign key constraint 'CHARACTER_FK1' for key (1). The statement has been rolled back.
派閥を必要とするキャラクターがなくなったときにのみ派閥を削除したい. どうやってやるの?