最初の CascadeType.Remove はオプションではありません。これは、クライアント側のデータベースがカスケード操作をサポートしていない可能性があるためです。
OrphanRemoval = true は @OneToXXX 関係のみを処理すると思います。
many-to-one
関係はどうですか?
たとえば、次のmany-to-one
ようなマッピングです。
public class Order{
....
@ManyToOne
private Customer customer;
.....
}
Customer エンティティには、リレーションシップを一方向にする Order へのマッピングはありません。
では、どうすればよいremove all orders from a customer before removing that customer
でしょうか。それを処理する簡単な自動方法はありますか、それともサービス層を介して明示的にコードを実装し、findOrdersByCustomer(long customer_id)
それらを削除するようなものを呼び出す必要がありますか?
前もって感謝します。