他のエンティティと 1 対多の関係を持つオブジェクトを永続化しようとしています。CascadeType.ALLの使用は機能しますが、実際には、メイン オブジェクトを削除するときにそのエンティティを削除したくありません。したがって、CascadeType.PERSISTを使用しようとしました。しかし、それを使用すると、選択クエリが作成され、エンティティが見つからないと表示されます。では、cascadeType.PERSIST を使用すると、なぜ休止状態になるのでしょうか。
基本的に私のクラスは次のとおりです。
public class Employeer{
@Id
private String id;
@Column
private String name;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "employer_details", joinColumns = {@JoinColumn(name = "employeer_id", referencedColumnName = "id")}
, inverseJoinColumns = {@JoinColumn(name = "details_id", referencedColumnName = "id")})
private Set<Address> otherObjects= new HashSet<>();
}
したがって、CascadeType.PERSISTを使用すると、 Address 要素が保持されず、選択クエリが作成され、エンティティが見つからないという理由が問題になります。使用したい理由は、従業員を削除するときに住所テーブルからエンティティを削除したくないからです。
注:私はこの投稿を見ていました。データを保存しようとしている間、エンティティ .. が見つかりません。しかし、 CascadeType.PERSISTが機能しない理由を取得しようとしています。