createViewObjectFromQueryStmt()
をアプリケーション・モジュールでコールすることにより、実行時に新規ビュー・オブジェクトを動的に定義し、そのインスタンスをアプリケーション・モジュールのデータ・モデルに動的に追加できます。
注意: 作成したビュー・オブジェクト・インスタンスにはエンティティ・オブジェクトの慣用名はありません。つまり、その属性はすべて一時属性になります。この詳細、またはエンティティ・オブジェクトの慣用名を持つビュー・オブジェクトのインスタンスの追加方法は、関連項目のトピックを参照してください。
新規のSQLのみの定義を使用して実行時にビュー・オブジェクト・インスタンスを追加するには、次のようにします。
OrdersForCustomer
の場合、次のコードを使用します。
String voInstanceName = "OrdersForCustomer";
String query = "SELECT * FROM ORDERS";
createViewObjectFromQueryStmt()
をコールします。
ViewObject ordVO =
myAM.createViewObjectFromQueryStmt(voInstanceName, query);
注意: このメソッドを使用してビュー・オブジェクトを作成すると、最初にデータをフェッチするとき、問合せが2回実行される場合があります。最初の問合せでは、データ型と精度の情報が収集されます。この情報は、データを適切なJava型にマップし、(最大値よりも低い精度を指定して)問合せの効率を上げるために、後の問合せで使用されます。2回実行するとパフォーマンス上問題がある、負荷の高い問合せの場合、回避策として、行を返さないダミーのWHERE句を使用してまずビュー・オブジェクトを作成し、そのビュー・オブジェクトに対してメタデータ問合せと属性定義を容易にするgetAttributeCount()
をコールし、次にsetQuery()
をコールして、必要に応じて問合せを変更します。このようにすると、最初の問合せは、同じデータセットに対する単純で負荷の高くない問合せになります。
注意: 動的ビュー・オブジェクトは、フレームワークに登録された型マップに事前定義された型で作成できます。ビュー・オブジェクトにユーザー定義のデータ型が含まれる場合、oracle.jbo.common.OracleTypeMapEntries
サブクラスを指定し、コンストラクタに新しいJboTypeMapを追加する必要があります。
実行時にビュー・オブジェクト・インスタンスをデータ・モデルに追加する方法
カスタム型マップの作成
ビュー・オブジェクト属性について
Oracle ADFビュー・オブジェクトについて
Oracle ADFアプリケーション・モジュールについて
ビュー・オブジェクトおよびビュー・リンク・インタフェースについて
ルート・レベルのアプリケーション・モジュールへのアクセス
データ・モデル内のビュー・オブジェクト・インスタンスの検索
事前定義済ビュー・オブジェクトに基づく実行時のビュー・オブジェクト・インスタンスの追加
新規のエンティティに基づく定義を使用した実行時のビュー・オブジェクト・インスタンスの追加
Copyright © 1997, 2007, Oracle. All rights reserved.