JPA学习笔记(14)——查询缓存
2016-07-12 16:26
561 查看
使用hibernate的查询缓存
执行以下代码:String jpql = "FROM User u WHERE u.id = ?"; Query query = entityManager.createQuery(jpql); query.setParameter(1, 1); User user = (User) query.getSingleResult(); query = entityManager.createQuery(jpql); query.setParameter(1, 1); user = (User) query.getSingleResult();很显然会执行两次查询
如果想要使用缓存,只查询一次,可以使用setHint
String jpql = "FROM User u WHERE u.id = ?"; Query query = entityManager.createQuery(jpql).setHint(QueryHints.HINT_CACHEABLE, true); query.setParameter(1, 1); User user = (User) query.getSingleResult(); query = entityManager.createQuery(jpql).setHint(QueryHints.HINT_CACHEABLE, true); query.setParameter(1, 1); user = (User) query.getSingleResult();注意:这里的QueryHints是org.hibernate.ejb.QueryHints包下的,并且,使用查询缓存的前提是在配置文件中配置了启用查询缓存
<property name="hibernate.cache.use_query_cache" value="true"/>
相关文章推荐
- Android笔记--简单的自定义View之组合模式
- 关于bootstrap 弹窗——点击空白处禁止关闭弹窗
- 连载:面向对象葵花宝典:思想、技巧与实践(3) - 面向过程 vs 面向对象
- 332. Reconstruct Itinerary
- easyui datagrid combox 与 bootstrap 共用时,bootstrap.min.js 出现JS异常
- 【NOIP2016模拟7.12】游戏
- JPA学习笔记(13)——JPQL
- Log4j.properties配置详解
- 替换空格
- 字符串运用-密码截取,字符串中的最长的回文串
- Spring Batch
- linux脚本后台运行
- The project: project which is referenced by the classpath, does not exist.
- Myeclipse Templates详解(一) —— Java模板基础
- 从艾优尼之死,看Freeme OS的深远价值
- 同步,异步和阻塞,非阻塞
- 嵌入式学习第二天
- Very deep convolutional networks for large-scale image recognition
- [07]tensorflow源码例子mnist源码——fully_connected_feed.py
- 笔记----httpd得basic认证基于组