2

Webアプリケーションのコンテキスト内でデタッチされたオブジェクトを使用する利点は何ですか?AFAIKは、オブジェクトがトランザクションの「字句」スコープよりも長生きする場合にのみ役立ちますが、通常、トランザクションが終了したWebアプリでは、オブジェクトをビューレイヤーに送信するだけで、再アタッチされません。

私の理解の限りでは、オブジェクトのデタッチは、後でそれをマージ/再アタッチする場合にのみ役立ちます。オブジェクトをDBに直接更新するだけの場合と比較して、これの利点はわかりません。

サンプルコードは大歓迎です。

編集:明確にするために、私はデタッチされたオブジェクトとトランジェント(たとえばdbに来たが、後で再アタッチできないオブジェクト)の利点を理解しようとしています。

4

2 に答える 2

1

デタッチされたオブジェクトは、バージョン番号を保持する場合もあります (バージョン管理列がある場合)。たとえば、エンティティ エディターのアプローチを採用する場合、エンティティをロードして http セッション (またはその他の長期間有効なストア) に格納し、それを更新して後のインタラクションで別のセッションにマージします。の場合、Hibernate はエンティティ (またはマージされたオブジェクト グラフ内の他のエンティティ) が同時に変更されていないことを自動的に確認できます。

于 2009-05-20T17:37:10.747 に答える
0

さまざまなテーブルの行から取り込まれた多数のドロップダウンを含むページがあるとします。ページをレンダリングするたびに DB に往復する必要がないように、オブジェクトのリストを取得して切り離し、どこかに保存することができます。遅延ロードされる可能性のあるプロパティを参照しないように注意する限り、問題はありません。

于 2009-05-20T17:24:20.553 に答える