ビュー・オブジェクトへの多相性の実装

同じ行セットに様々な型のエンティティ・オブジェクトをマップでき、クライアントは様々な型のオブジェクトに関する認識なしで行セットを処理できます。この一般的な例には、月給制社員と時給制社員の2つの型の従業員があります。どちらの型の従業員も同じベース・エンティティ・オブジェクトを使用しますが、異なる給与形態を計算するには、最低もう1つのサブ・エンティティ・オブジェクトが必要です。

エンティティ・オブジェクト・レベル上に実装するかしないかにかかわらず、ビュー・オブジェクト・レベル上に多相性を実装できます。

ビュー・オブジェクト・レベル上に多相性を実装するには、次のようにします。

  1. 行に対するベース・ビュー・オブジェクトを定義し、それを拡張してこのビュー・オブジェクトの別バージョンを作成します。たとえば、ベース・ビュー・オブジェクトDept、子オブジェクトのLargeDeptおよびSmallDeptを作成できます。
  2. ベース・ビュー・オブジェクトでは、この属性に対して別の型の行を識別するためのビュー属性を作成し、「多相化識別子」属性設定を選択します。
  3. ベース・ビュー・オブジェクトの子それぞれで、一意のデフォルト値をこの属性に追加します。この例では、デフォルト値SまたはLを持つ、2つの子ビュー・オブジェクトを持っています。
  4. 「アプリケーション・モジュール」ウィザードまたはエディタのデータ・モデル・ページで、ベース・ビュー・オブジェクトを選択します。その後、「サブタイプ」ダイアログで、子ビュー・オブジェクトを選択します。これにより、ビュー・オブジェクトを使用するアプリケーション・モジュールがこれらのビュー・オブジェクトを使用できるようになります。

データベースから行が取得される場合、ViewObjectImpl createRowFromResultSetメソッドがコールされます。このメソッドでは、ビュー・オブジェクトの識別子属性が取得され、ターゲット・ビュー・オブジェクトの定義が決定されます。次に、この定義を使用して適切な行が作成されます。このメソッドはオーバーライドできます。


関連項目

多相性ビジネス・コンポーネントの作成
識別子列の作成

Oracle ADFビュー・オブジェクトについて

Oracle ADFエンティティ・オブジェクトについて