2016-09-22 9 views
5

私は同じクエリの実行を複数回避けるためのアプローチが必要です。 コードの観点から助けを必要としません。高度なアプローチがうまくいくでしょう。同じクエリの実行を複数回回避するにはどうすればよいですか?

現在、私は異なるクラスで同じハイバネートクエリを実行しています。これらの実行は同じリクエストの一部です。 現在、私はデータを格納するために要求レベルのキャッシュを使用しています。後でパフォーマンスを向上させるために、DBではなくキャッシュからこれらのデータをフェッチしています。しかし、私は上記のアプローチとは別に他のアプローチがあるかどうかを知りたい。

これを手伝うことができれば非常に役に立ちます。

おかげ

+0

繰り返されるクエリは、データベース自体によって〜0ミリ秒で返されないことに少し驚いています。 –

+0

問題のあるクエリが要求ごとに1回だけ実行されるように、コードの関連部分のリファクタリングをお勧めします。 –

+0

@Joop Eggen ..ご返信ありがとうございます。それはOracleまたはHibernateの既存の機能ですか? – Rehman

答えて

0

あなたはServletContextListenerを実装するWebリスナを登録することができます。 contextInitialized(アプリケーションデプロイ)とcontextDestroyed(アプリケーションデプロイメント)を実装する必要があります。

@WebListener 
public final class CacheBootstrap implements ServletContextListener { 

    @Override 
    public void contextInitialized(ServletContextEvent sce) { 
     // load data into cache (hql?) 
    } 

    @Override 
    public void contextDestroyed(ServletContextEvent sce) { 
     // unload data from cache (hql?) 
    } 
} 
関連する問題