Hibernate Ecache配置问题

Hibernate Ecache配置问题,hibernate,ehcache,cache-control,Hibernate,Ehcache,Cache Control,我们正在探索在两个级别上为我们的web应用程序使用Ehcache的选项 对于Hibernate二级缓存 用于web应用程序缓存(jsp) 现在我们有以下问题,我们正在开发一种内容管理系统,所以我们将有一个后台办公室,在那里我们将管理所有的内容和其他东西,另一个是UI部分 对于UI part i,可以配置过滤器,使其仅缓存UI的内容,而不进行后台缓存管理 但真正的问题是Hibernate二级缓存,因为我们计划对UI部分使用相同的DAO层,但因为我们需要在相应的.hbm文件中配置缓存设置,这意味着缓

我们正在探索在两个级别上为我们的web应用程序使用Ehcache的选项

  • 对于Hibernate二级缓存
  • 用于web应用程序缓存(jsp)
  • 现在我们有以下问题,我们正在开发一种内容管理系统,所以我们将有一个后台办公室,在那里我们将管理所有的内容和其他东西,另一个是UI部分

    对于UI part i,可以配置过滤器,使其仅缓存UI的内容,而不进行后台缓存管理

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

    我们只希望为UI部件和后台激活Hibernate二级缓存,但由于使用了相同的DAO层,目前似乎不可行,但我们不希望重复DAO代码


    有没有办法做到这一点。这方面的任何建议都会很有帮助

    在DAO中,需要将setCacheable(true)添加到查询中 因此,基本上,您可以向DAO方法添加一个布尔参数,以传递给setCacheable(…)


    在DAO中,需要将setCacheable(true)添加到查询中 因此,基本上,您可以向DAO方法添加一个布尔参数,以传递给setCacheable(…)

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