カスケードと逆の間で異なる
多くのHibernate開発者は、カスケードオプションとインバースキーワードについて混乱しています。 いくつかの点で..最初は本当に似ているように見えますが、両方とも関係と関係しています。
カスケードと逆
ただし、カスケードと逆の関係はなく、どちらもまったく異なる概念です。
1. 逆
これは、リレーションシップを管理するリレーションシップの所有者を決定するために使用されます(外部キー列の挿入または更新)。
例
この例では、関係の所有者はstockDailyRecordsに属します(inverse = true)。
... ...
ストックオブジェクトを保存または更新するとき
session.save(stock); session.update(stock);
Hibernateは、STOCKテーブルの挿入または更新のみを行い、外部キー列の更新は行いません。 More detail example here…
2. カスケード
カスケードでは、1つの操作(保存、更新、削除)が行われた後、相互に関係がある別のエンティティで他の操作(保存、更新、削除)を呼び出す必要があるかどうかを決定します。
例
この例では、cascade =” save-update”がstockDailyRecordsで宣言されています。
... ...
ストックオブジェクトを保存または更新するとき
session.save(stock); session.update(stock);
レコードをSTOCKテーブルに挿入または更新し、StockDailyRecordで別の挿入または更新ステートメント(cascade =” save-update”)を呼び出します。 More detail example here…
結論
つまり、「逆」はどちらの側が外部キーを更新するかを決定し、「カスケード」は操作によるフォローバイを実行するものを決定します。 両者は関係が非常に似ているように見えますが、まったく異なるものです。 Hibernate開発者は、概念を誤解したり誤用すると、アプリケーションに深刻なパフォーマンスやデータ整合性の問題が生じるため、時間をかけて調査する価値があります。