2015-01-09 10 views
6

答えを検索しましたが、正しく取得できませんでした。 CascadeType.ALL、カスケード= CascadeType.REMOVEorphanRemovalの違いは何ですか?FetchType.EAGER@OneToManyに設定していますか? レコードの削除中に問題が発生しました。私は従業員レコードを削除しようとしたとき、私はそれは私にすべての例外を示していなかったし、それがレコードをdeleteingていなかった、CascadeType.ALL、cascade = CascadeType.REMOVEとorphanRemovalの違いは何ですか?

@OneToMany(cascade = CascadeType.ALL, mappedBy = "companyEntity", fetch = FetchType.EAGER) 
Set<EmployeeEntity> employeeEntities; 

次のように使用しています。しかし、私がCascadeType.ALLCascadeType.REMOVEに変更したとき、それは機能していました。 CascadeType.ALLではなく、CascadeType.REMOVEで動作しないのはなぜですか?

は事前に簡単な説明をありがとう;)

答えて

2

Thisは、あなたの質問の一部を説明します。

2つの設定の間の「CascadeType.REMOVE」

差が親エンティティによって指さコレクションから 子オブジェクトの削除に対応している対「真OrphanRemoval =」。

orphanRemoval = trueが指定されている場合、削除されたアドレスのインスタンスは、自動的に削除された です。 cascade = CascadeType.REMOVEのみが指定されている場合 リレーションシップを削除する操作が remove操作ではないため、自動アクションは実行されません。

関連する問題