と の 2 つのテーブルがAccounts
ありMails
ます。
Accounts の 1 人のユーザーは、いくつかのメール ( 1 : M rateship ) を持つことができます。
- ユーザーが自分のプロファイルを ( から
Accounts
) 削除している場合、休止状態はそのユーザーのすべてのメールを ( からMails
) 削除する必要があります。Accounts
ID (PK) とその他の列があります。Mails
id(PK)、user_id(FK: user_id -> Accounts.id) およびその他の列があります。
Hibernate(またはJPA)で上記の種類の実装を実現するにはどうすればよいですか?
私のエンティティクラスは次のとおりです。
//Accounts class
@OneToMany(mappedBy = "accounts", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<Mails> mails;
//Mails class
@ManyToOne
@JoinColumn(name="user_id" , referencedColumnName="id", insertable=false, updatable=false)
private Accounts accounts;
しかし、いくつかの親行を編集または削除すると、休止状態は次のように言います: 親行を削除または更新できません: 外部キー制約が失敗します。では、正確にどこで間違いを犯しているのですか?
アップデート
このエラーは、SQL または HQL クエリを実行すると発生しますが、これは正しくありません。entitymanager.remove または entitymanager.merge メソッドを使用する必要があります。私のエンティティクラスは有効です。