新規のSQLのみの定義を使用した実行時のビュー・オブジェクト・インスタンスの追加

createViewObjectFromQueryStmt()をアプリケーション・モジュールでコールすることにより、実行時に新規ビュー・オブジェクトを動的に定義し、そのインスタンスをアプリケーション・モジュールのデータ・モデルに動的に追加できます。

注意: 作成したビュー・オブジェクト・インスタンスにはエンティティ・オブジェクトの慣用名はありません。つまり、その属性はすべて一時属性になります。この詳細、またはエンティティ・オブジェクトの慣用名を持つビュー・オブジェクトのインスタンスの追加方法は、関連項目のトピックを参照してください。

新規のSQLのみの定義を使用して実行時にビュー・オブジェクト・インスタンスを追加するには、次のようにします。

  1. データ・モデルのインスタンスに与える名前を含む文字列を作成します。たとえば、このインスタンスがOrdersForCustomerの場合、次のコードを使用します。

    String voInstanceName = "OrdersForCustomer";

  2. ビュー・オブジェクトの問合せを含む文字列を作成します。セミコロンは文字列に含めないでください。

    String query = "SELECT * FROM ORDERS";

  3. インスタンス名と問合せを渡してcreateViewObjectFromQueryStmt()をコールします。
    ViewObject ordVO = 
      myAM.createViewObjectFromQueryStmt(voInstanceName, query);        
  4. インスタンスを別のインスタンスとマスター/ディテール関係にする方法は、「実行時にビュー・オブジェクト関係を変更する方法」を参照してください。

注意: このメソッドを使用してビュー・オブジェクトを作成すると、最初にデータをフェッチするとき、問合せが2回実行される場合があります。最初の問合せでは、データ型と精度の情報が収集されます。この情報は、データを適切なJava型にマップし、(最大値よりも低い精度を指定して)問合せの効率を上げるために、後の問合せで使用されます。2回実行するとパフォーマンス上問題がある、負荷の高い問合せの場合、回避策として、行を返さないダミーのWHERE句を使用してまずビュー・オブジェクトを作成し、そのビュー・オブジェクトに対してメタデータ問合せと属性定義を容易にするgetAttributeCount()をコールし、次にsetQuery()をコールして、必要に応じて問合せを変更します。このようにすると、最初の問合せは、同じデータセットに対する単純で負荷の高くない問合せになります。

注意: 動的ビュー・オブジェクトは、フレームワークに登録された型マップに事前定義された型で作成できます。ビュー・オブジェクトにユーザー定義のデータ型が含まれる場合、oracle.jbo.common.OracleTypeMapEntriesサブクラスを指定し、コンストラクタに新しいJboTypeMapを追加する必要があります。


実行時にビュー・オブジェクト・インスタンスをデータ・モデルに追加する方法
カスタム型マップの作成
ビュー・オブジェクト属性について
Oracle ADFビュー・オブジェクトについて
Oracle ADFアプリケーション・モジュールについて
ビュー・オブジェクトおよびビュー・リンク・インタフェースについて
ルート・レベルのアプリケーション・モジュールへのアクセス
データ・モデル内のビュー・オブジェクト・インスタンスの検索
事前定義済ビュー・オブジェクトに基づく実行時のビュー・オブジェクト・インスタンスの追加
新規のエンティティに基づく定義を使用した実行時のビュー・オブジェクト・インスタンスの追加