2016-10-06 6 views
1

マイページが表示されるたびに、表問合せが実行されます。私は、これをやって最初のロード時に表をロードしないOracle ADF

https://blogs.oracle.com/shay/entry/preventing_queries_when_page_f

を試みたが、それはまだ発生します。これをどうすれば解決できますか?私は決してリフレッシュ条件を設定しようとしましたが、データを取得できません。私はJDev 11gを使用しています。

ありがとうございました。

答えて

2

これをJDeveloper 12.1でどのように共有できますか。私はそれが11gで動作するかどうかはわかりません。それを行うのが最善の方法だとは思っていません。しかし、それは私のために働いた。

考えられるのは、最初のクエリの実行が妨げられるのではなく、速やかに実行され、データが返されないようにすることです。アプローチは、アプリケーションモジュールのビューインスタンスで初期クエリ条件を設定することです。

この方法では、ビュー・オブジェクトに少なくとも1つのバインド変数があることを前提としています。そうでない場合は、これだけを追加する必要があります。左側の「データモデル」タブの一番下の

  • クリックで「概要」タブでのアプリケーションモジュールの

    • ダブルクリックし
    • クリックし、あなたがのデータモデルのコンポーネントを表示しているように、あなたのアプリケーションモジュール
    • 右の "データモデル"ツリーで、オブジェクト使用量の表示( "MyObjectVO1"など)を1回クリックします。
    • データモデルツリーの右上隅にある[編集...]をクリックします。

    ここでは、最初にページに使用するビュー基準を指定できます。したがって、 *(A)すぐに実行し、(B)データを返さない初期パラメータを設定する

    その後、データを返す正しい値にプログラマチックにバインド変数をリセットします。クエリ実行。

  • +0

    ありがとうございました!それは働いた – Graeme

    1

    私が知っている最も簡単な方法は、ページ定義のイテレータで「リフレッシュ」属性を正しく設定することです。あなたをリフレッシュする必要があるときあなたは、単に瞬間を管理することができ、このコードでは#{viewScope.yourBean.refresh}

    public class YourBeanClass { 
    
        private boolean refresh = false; 
    
        public void someAction(ActionEvent actionEvent) { 
         //some custom logic to set refresh flag 
         refresh = true; 
        } 
    
        public boolean isRefresh() { 
         return refresh(); 
        } 
    } 
    

    : は、そのセットのリフレッシュを行うために= IFNEEDEDは、その後、式言語、このようなものとのRefreshConditionを設定しましたモデル。

    0

    これらのソリューションはクエリの実行を妨げるために機能しますが、ユーザーが最初に検索を実行せずにWebページに表示されると見なすユースケースは何ですか?

    通常、Webページにはページにaf:queryまたはaf:quickqueryコンポーネントが含まれているため、ユーザーは問合せを入力できるため、ADFは自動的に問合せを実行します。クエリが実行されると、結果が返され、テーブルまたはフォームが(ページデザインに応じて)読み込まれます。これらの検索コンポーネントのいずれかをページに含めると、検索が実行されるまでページがクエリを実行できなくなります。また、タスクフローを使用してページへの入力時にクエリを実行し、データコントロールからExecute操作をナビゲーションに追加してページにアクセスする前に/そのページにアクセスする前にクエリを実行することもできます。

    Shayのブログ投稿は2009年からのもので、検索コンポーネントを使用しない代わりにExecute with Paramsを使用するというユースケースをカバーしています。これはあなたが使っているものですか?あなたのユースケースについてもっと詳しく言えば助かります。

    関連する問題