5
我需要一種方法來避免多次執行相同的查詢。 我不需要代碼角度的任何幫助。高層次的方法會很好。如何避免多次執行相同的查詢?
當前我在不同的類中執行相同的hibernate查詢,這些執行是同一請求的一部分。 截至目前,我正在使用請求級緩存來存儲數據。後來,我從緩存而不是數據庫中提取這些數據來提高性能。但我想知道是否還有其他方法可以跟上述方法分開。
如果您可以提供幫助,這將非常有幫助。
感謝
我需要一種方法來避免多次執行相同的查詢。 我不需要代碼角度的任何幫助。高層次的方法會很好。如何避免多次執行相同的查詢?
當前我在不同的類中執行相同的hibernate查詢,這些執行是同一請求的一部分。 截至目前,我正在使用請求級緩存來存儲數據。後來,我從緩存而不是數據庫中提取這些數據來提高性能。但我想知道是否還有其他方法可以跟上述方法分開。
如果您可以提供幫助,這將非常有幫助。
感謝
你可以註冊一個Web偵聽器將實施ServletContextListener
。 您需要實施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?)
}
}
我有點驚訝,重複的查詢不會在數據庫本身的〜0 ms內返回。 –
我建議重構代碼的相關部分,以便每個請求只執行一次有問題的查詢。 –
@Joop Eggen ..感謝您的回覆。它是Oracle還是Hibernate的現有功能? – Rehman