2011-04-27 86 views
1

,我們正在探索的選擇在兩個層面Ecache配置問題

  1. 對於Hibernate的二級緩存使用了Ehcache我們的Web應用程序。
  2. 對於網絡的應用程序緩存(JSP)

現在我們有以下的問題,我們正在開發還挺內容管理系統,所以我們會去有後臺,我們將管理所有的內容和其他事情和另一個是UI部分。

對於UI部分,我可以配置過濾器,使得它們只會緩存UI的內容並且不需要後臺緩存管理。

但是真正的問題是Hibernate二級緩存,因爲我們打算爲UI部分使用相同的DAO層,但是因爲我們需要在相應的.hbm文件中配置緩存設置,這意味着緩存也適用於我們想避免的後臺。

我們希望Hibernate的二級緩存應該被激活用於UI部分和後臺它不應該進入播放,但由於使用相同的DAO層,目前看起來不可行,但我們不想複製DAO代碼。

有沒有什麼辦法可以做到這一點。在這方面的任何建議都會有很大的幫助。

回答

1

在你的DAO,你需要setCacheable(真)添加到您的查詢 所以基本上你可以一個布爾參數只是添加到您的DAO方法傳遞給setCacheable(...)

Class YourDao { 

public List loadStuff(Session session, boolean isCacheable) { 
    return session.createQuery("from Myentity").setCacheable(isCacheable).list(); 
} 

}