UserPOエンティティにこのマッピングがあります:
@ElementCollection
@JoinTable(name = "role", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = { @JoinColumn(name = "department") })
@MapKeyJoinColumn(name = "mission")
private Map<MissionPO, DepartmentListPO> departmentsByMission = new HashMap<MissionPO, DepartmentListPO>();
Map<MissionPO, List<DepartmentPO>>
Hibernate(またはJPA)のオプションではないように思われるため、DepartmentListテーブルとDepartmentListPOテーブルを使用します。
これまでのところ、ユーザーには部門のリストに限定されたミッションを与えることができます。
例:トムは部門10と11にミッション1を持っています
私の問題は、ミッションを削除した場合:
departmentsByMission.remove(mission)
role
User / Mission/DepartmentListをリンクした行は削除されません。たくさんのスレッドを読んだのですが、で一括削除できないようElementCollection
です。
ON CASCADE DELETE
DepartmentList外部キーのロールテーブルに制約を使用しようとしましたが、これは私が望むものの逆のようです。DepartmentListを削除すると、ロールが削除されます。
だから私がしたいのはentityManager.remove(departmentList)
のremoveMission
方法のようなことをすることactor
です。
残念ながら、エンティティPersistentContext
に入れることはできないようです。User
したがって、データベーストリガーを回避したいので、解決策がどうなるか少し混乱しています。
解決策をありがとう、私は本当にそこに立ち往生しています。