Ehcache配置问题

时间:2011-04-27 15:13:47

标签: hibernate ehcache cache-control

我们正在探索在两个层面上使用Ehcache进行网络应用的选项

  1. 适用于Hibernate二级缓存。
  2. 对于Web应用程序缓存(jsp)
  3. 现在我们有以下问题,我们正在开发有点内容管理系统,因此我们将有一个后台,我们将管理所有内容和其他内容,另一个是UI部分。

    对于UI部分我可以这样设置过滤器,它们只会缓存UI的内容而不会进行后台缓存管理。

    但真正的问题是Hibernate二级缓存,因为我们计划为UI部分使用相同的DAO层,但因为我们需要在相应的.hbm文件中配置缓存设置,这意味着缓存也适用于我们想要避免的后台办公室。

    我们希望Hibernate二级缓存应该为UI部分激活,对于后台办公室它不应该进入播放但是由于使用相同的DAO层,目前似乎不可行但是我们不要我想复制DAO代码。

    有没有办法实现这一点。这方面的任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

在DAO中,您需要将setCacheable(true)添加到Query中 所以基本上你可以在你的DAO方法中添加一个布尔参数来传递给setCacheable(...)

Class YourDao {

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

}