2009-05-20 1 views
2

Webアプリケーションのコンテキスト内で切り離されたオブジェクトを使用する利点は何ですか? AFAIKは、オブジェクトが何らかの理由でトランザクションの「語彙的」スコープよりも長生きする場合にのみ有用ですが、通常はトランザクションが終わったときにWebアプリケーションでオブジェクトをビューレイヤに送り、再接続されません。Jdo/Hibernateの分離オブジェクト - とにかく彼らは何ですか?

私が理解している限り、オブジェクトを切り離すことは、後でマージ/再接続する場合にのみ役に立ちます。オブジェクトのストレートアップデートを行うだけでは、この利点が見られません。 DBに。

すべてのサンプルコードは評価されています。

編集:説明のために、切り離されたオブジェクトと一時的なオブジェクトの違いを理解しようとしています(たとえば、dbのものですが、後で再接続できないもの)。

答えて

0

さまざまな表の行から数十のドロップダウンが設定されたページがあるとします。あなたは、ページをレンダリングするたびにDBに往復する必要はないので、オブジェクトのリストを取得し、それらを切り離してどこかに格納することができます。あなたが怠け者かもしれないプロパティを参照するのを避けるために気を付ける限り、あなたは大丈夫です。

+1

しかし、この方法で私のオブジェクトは古くなる可能性があります。また、私はdetachとtransientの違いを理解しようとしています。 –

1

デタッチされたオブジェクトは、バージョン番号を保持することもできます(バージョニング列がある場合)。たとえば、エンティティを読み込んでhttpセッション(またはそれより長生きするストア)に格納し、それを更新し、それを後の対話で別のセッションにマージするなど、エンティティエディタのアプローチをとった場合Hibernateはエンティティ(またはあなたのマージされたオブジェクトグラフの他のエンティティ)が同時に変更されていないことを自動的にチェックします。

関連する問題