1

と の 2 つのテーブルがAccountsありMailsます。

Accounts の 1 人のユーザーは、いくつかのメール ( 1 : M rateship ) を持つことができます。

  • ユーザーが自分のプロファイルを ( からAccounts) 削除している場合、休止状態はそのユーザーのすべてのメールを ( からMails) 削除する必要があります。AccountsID (PK) とその他の列があります。Mailsid(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 メソッドを使用する必要があります。私のエンティティクラスは有効です。

4

1 に答える 1