hibernate缓存学习笔记(二)
查询缓存
除了对象级别粒度的二级缓存以外,有些时候我们也需要把对象里面包含的其他关联对象集或者普通的对象集合都进行有效的缓存,同样的@Cache 批注也可以标记在这些属性之上。
需要注意的是,依据你的义务要求确定你的关联对象或者集合到底需要一次性加载还是延迟加载!我本人是不喜欢使用延迟加载的,因为要涉及到session in view。如果需求里面多数情况下不会去加载对象本身包含的大量集合属性,那我就不在对象层面去显示关联它们,需要的时候再做一次查询拿出数据。
除了对象级别,集合级别粒度的二级缓存外,有些时候我们也需要对某些特殊的查询做缓存。例如在一个经常用到的产品分页场景中,我们查询一类产品后,会返回到一个分页的页面,这个时候需要请求数据库查询出当前条件的记录总数,也就是类似的hql语句: