以下是hibernate查询Category的列表的代码,其中用到了.setCacheable(true)。
它和EhCache二级缓存,有什么关联吗?如果用了EhCache二级缓存,那么.setCacheable(true)还有必要用吗?
public List<Category> findAll() {
return getSession().createCriteria(Category.class)//
.addOrder(Order.asc("order"))//
.setCacheable(true)//
.list();
}

解决方案 »

  1.   

    二级缓存也称进程缓存或叫SessionFactory级的缓存,它可以被所有的session共享
    二级缓存的生命周期伴随着SessionFactory的生命周期存在和消亡
    SessionFactory可以管理二级缓存
      

  2.   

    setCacheable(true) 查询缓存
    数据量比较大,在页面显示但是不影响客户的各种信息时,采用此种方案可以减轻服务器的压力,提供效率: