hibernate三级缓存(查询缓存)
查询缓存是跨session的。
1.配置hibernate.cfg.xml,打开查询缓存
<property name="cache.use_query_cache">true</property>
2.java anotation
public void testQueryCache() {
Session session = sf.openSession();
session.beginTransaction();
List<Category> categories = (List<Category>)session.createQuery("from Category")
.setCacheable(true).list();
session.getTransaction().commit();
session.close();
Session session2 = sf.openSession();
session2.beginTransaction();
List<Category> categories2 = (List<Category>)session2.createQuery("from Category")
.setCacheable(true).list();
session2.getTransaction().commit();
session2.close();
}
设置打开查询缓存后,在testQueryCache方法中,相同的查询语hibernate只执行一次,也就是说第二次直接从缓存中取。