标签:refresh ssi font null ref 文件 读取数据 system 文件中
Hibernate 的一级缓存和二级缓存都是对实体进行缓存,他不会缓存普通属性,如果想对普通熟悉进行缓存,可以考虑使用查询缓存。
对于查询缓存来说,他缓存的Key就是查询所用的 HQL 或者 SQL 语句,查询缓存不仅要求使用的语句相同,还要求参数必须一致,查询缓存默认是关闭的,为了开启查询缓存,需要修改 Hibernate.cfg.xml 配置文件,增加如下配置:
<property name="hibernate.cache.use_query_cache">true</property>
要使用查询缓存还必须在调用查询时,使用 setCacheable 方法开启缓存,示例代码如下:
? ?
public static void main(String[] args) {
Session curSession = hibernateUtils.openSession();
try {
? ?
// 第一次查询,启用了缓存
List list = curSession.createQuery("SELECT trm FROM TransitRecordModel trm").setCacheable(true).list();
System.out.println("Query Size=" + list.size());????????????????
// 第二次查询,启用了缓存,因此从缓存读取,不发起数据库查询操作
list = curSession.createQuery("SELECT trm FROM TransitRecordModel trm").setCacheable(true).list();
System.out.println("Query Size=" + list.size());
} finally {
if (curSession != null) {
curSession.close();
}
}
}
? ?
查询缓存和二级缓存的交互 通过 setCacheMode 方法来设置,有如下几种类型:
? ?
? ?
标签:refresh ssi font null ref 文件 读取数据 system 文件中
原文地址:http://www.cnblogs.com/li3807/p/6358391.html