通常、ビュー・オブジェクトとエンティティ・オブジェクトとの間には関連付けを行います。これによって、基礎となる関連エンティティ・オブジェクトでのビジネス・ロジックの自動トリガー付きの更新、挿入および削除が行セットでサポートされます。セッションでビュー・オブジェクトを通して行われた更新は、同じ論理エンティティ属性を示す他のビュー・オブジェクトに自動的に反映されます。この動作は、ビュー・オブジェクトとエンティティ・オブジェクトが関連付けられている場合にのみ行われます。ただし、エンティティ・オブジェクトを使用すると、実行時により多くのオブジェクトが作成されてキャッシュに入れられます。このため、エンティティ・オブジェクトを使用することにより得られる利点が必要ない場合は、エンティティ・オブジェクトを使用する必要はありません。
ビュー・オブジェクトがデータの問合せのみで、挿入、更新または削除を行わない場合、得られる利点がないため、通常、エンティティ・オブジェクトへの関連付けは行いません。これには、次の2つの例外があります。ただし、次の場合は、ビュー・オブジェクトとエンティティ・オブジェクトの関連付けを行ってください。
ビュー・オブジェクトに、別の更新可能なビュー・オブジェクトが同じデータを変更したことを通知する必要がある場合
読取り専用の結果のスクロールおよびキャッシュの必要がある場合
問合せが結合問合せである場合
表の結合により、各行に繰返しデータが増える場合(たとえば、EMPとDEPTの結合でDepartment 10のデータが100行になる場合など)。この場合、ビュー・オブジェクトとエンティティ・オブジェクトの関連付けにより、Business Components for Javaで、1つのDepartment 10のエンティティ・オブジェクト行を1回のみキャッシュするため、メモリーを大幅に節約できます。100のEMPはDepartment 10の情報を参照します。
特定の状況では、ビュー・オブジェクトに順方向のみのモードを使用すると(vo.setForwardOnly(true)
)、行データがキャッシュされないため、メモリーおよび時間の節約ができます。たとえば、次のような場合に順方向のみのモードを使用します。
結果を逆方向にスクロールする必要がない場合
結果を複数回反復しない場合
同じセッションで再参照しない場合(たとえば、単に行をWebページに表示する場合など)