私は双方向の関係を次のようにマッピングしています
@Entity
public class Customer {
@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Servers> servers;
}
と
@Entity
public class Server {
@ManyToOne
@JoinColumn(name = "...")
private Customer customer;
}
問題は、(Oracle)DBで強制された外部キー参照が設定されているのに、顧客に対して削除を実行すると、親リレーションのサーバーの@JoinColumn値をに設定できないというエラーが発生することです。ヌル。
さまざまなオプションの属性、@ManyToOneのcascade= ALL、顧客の@PreRemoveメソッド(サーバーリストをクリアしようとしている)を試しましたが、役に立ちませんでした。クライアントのすべてのサーバーを最初に削除するのではなく、最初に関係をクリアしようとしたため、問題が発生しました。
よろしくお願いします、Nik