|
WebObjects 5.2.3 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
EODeferredFaulting
インターフェースは、エンタープライズオブジェクトがフォールティングを遅らせるために使うメソッドを定義しています。
Enterprise Objectsテクノロジーは、まだフェッチされていないオブジェクトの代役としてフォールトを使います。 フォールトの生成はフェッチよりも高速ですが、フォールトの初期化には時間がかかります。 さらにパフォーマンスを向上させるために、フレームワークは効率的な遅延フォールトを使います。
遅延フォールトを使うクラスのオブジェクトでは、リレーションシップ先が遅延フォールトとして設定されます。 特定のリレーションシップでは、すべてのエンタープライズオブジェクトが単体の遅延フォールトを共有します。 共有される遅延フォールトは生成されるフォールトの数を減らし、フェッチ時にフォールトを生成する負荷を軽減します。
例えばStudioへのリレーションシップを持つMovieクラスがあるとします。 遅延フォールティングなしでは、20のMovieオブジェクトをフェッチすると20のStudioオブジェクトが生成されます。 各Movieオブジェクトに対してフォールトが1つずつ生成されることになります。 遅延フォールティングを使うとフォールトが1つだけ生成され、すべてのMovieオブジェクトで共有されます。
Method Summary | |
Object |
willReadRelationship(Object value)
遅延フォールティングを使用するエンタープライズオブジェクトは、遅延フォールトでないリレーションシップ先のオブジェクトにアクセスする前に、このメソッドを実行します。 |
Methods inherited from interface com.webobjects.eocontrol.EOFaulting |
clearFault, faultHandler, isFault, turnIntoFault, willRead |
Method Detail |
public Object willReadRelationship(Object value)
遅延フォールティングを使用するエンタープライズオブジェクトは、遅延フォールトでないリレーションシップ先のオブジェクトにアクセスする前に、このメソッドを実行します。 EOCustomObjectとEOGenericRecordの実装は、オブジェクトが遅延フォールトであるかどうかを確認します。 遅延フォールトであれば、通常のフォールトを生成して返します。
例として、Movieオブジェクトが遅延フォールトを使っているとします。
リレーションシップ(ここでは studio
を例に挙げます)のアクセサメソッドは、オブジェクトを返す前に willReadRelationship
を実行するべきです。
実装は次のようなコードになります。
public Studio studio(){ willRead(); return this.willReadRelationship(studio); }
value
- 遅延フォールトかどうかを確認するオブジェクト
EOFaultHandler.createFaultForDeferredFault(Object fault,
EOEnterpriseObject eo)
|
Last updated Thu Oct 21 15:04:16 PDT 2004. | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |