に参加カスケード削除されません。これまでのところ、SELECTのためにうまく動作します。休止5 + JPA 2を超える私たちは、この関係を持っているテーブル
は今JQLクエリ
DELETE FROM RuleProviderEntity WHERE ...
あります。しかし、これはRuleEntity
行を削除するカスケード接続に失敗しました。 RuleProviderEntity
を削除し、RuleEntity
をそのまま残します。
これはJPA 2で動作するはずですが、これはHibernateのバグですか、設定に何か不足していますか?
私は@JoinTable
を追加することができますが、それはデフォルトを上書きするだけです。
orphanRemoval
もここでは必要ないようです。
@PreRemove
で回避策を講ずることはできますが、その方法はわかりません。
ありがとうございました。私はこれまで一括削除を使用していないので、私は知らなかった:)しかし、私は仕様がカスケード接続を必要としないことに非常に驚いている。 –
私の考え方は次のようになります: 'RuleEntityProvider'と同じセットがバルクの' DELETE'とマッチするエンティティが存在する可能性があります。それに対して 'em.remove()'を呼び出すとカスケードし、3番目のネストされた 'RuleEntity'エンティティも削除されます。ですから、なぜDELETEステートメントからカスケードしないのでしょうか。 –
カスケードがオプションでなければならない理由を理解してください。一括削除とは、データストアからデータを取り出すことなく一括処理を行うことです。カスケードするには、JPAプロバイダがすべてのオブジェクトを削除し、カスケードを処理してから削除する必要があります。 –