こんにちは、私はあなたがこの質問を私に役立つことを願って @ManyToOneは(フェッチ= FetchType.LAZY、カスケード= CascadeType.MERGE))マージと遅延ロード
メンターが熱望している: @ManyToOne(= FetchType.EAGER、カスケード= CascadeType.MERGE)をフェッチ)
こんにちは、私はあなたがこの質問を私に役立つことを願って @ManyToOneは(フェッチ= FetchType.LAZY、カスケード= CascadeType.MERGE))マージと遅延ロード
メンターが熱望している: @ManyToOne(= FetchType.EAGER、カスケード= CascadeType.MERGE)をフェッチ)
カスケードしていない場合は、最初に何も起こりません。あなたの例では、Cascade.Mergeを指定していないので、マージ操作はカスケードされません。
カスケード接続されていると仮定します。あなたの関係がLazyの場合に起こり得るエンティティが初期化されていない場合、カスケードは初期化されていないコレクションに伝播しません。
JPA仕様の後の特定のケースでは、ManyToOneのデフォルトの動作はEAGERです。
汚れている場合、マージがさらに
もう一つのカスケード接続されます汚れている場合には実体が、チェックされます熱望している場合。 ManyToOneのCascadeType.ALLは悪い考えです。 MANY側で1つのエンティティを削除すると、親オブジェクトの削除がトリガーされるためです。私はあなたが本当にこれを望んでいないと信じています。 CascadeType.Allを削除することを強くお勧めします。
CascadeType.ALL非常に悪い考えです。私の答えを読んでください。一人の生徒が引用しただけなので、全クラスの生徒のメンターを削除したいですか? :) –