当前位置: 代码迷 >> Java Web开发 >> 关于hibernate二级缓存有关问题
  详细解决方案

关于hibernate二级缓存有关问题

热度:74   发布时间:2016-04-17 10:55:01.0
关于hibernate二级缓存问题
二级缓存只能对通过ID查询的语句起作用?
只对这样的语句 hql="from ShopBean as shop where shop.s_id =123"; 起作用?
我底下的语句不行?怎么才能让下面的语句也使用二级缓存?

Java code
List<ShopBean> shops;String hql="from ShopBean as shop where shop.s_level like '%"+level+"' and shop.s_check='"+check+"'";Query query=session.createQuery(hql);shops=query.list();return shops;


------解决方案--------------------
不是太了解 帮顶
------解决方案--------------------
hibernate 应该只对 通过主键加载的数据起作用,还有延迟加载的数据,你这样的估计是不行。

你这种模糊查询为什么需要缓存呢?你要明白缓存的应用场景,并不是什么场景都适用缓存的。

变化频繁的数据并不适合做缓存的
------解决方案--------------------
需要在hibernate配置文件中加入<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
然后在查询的地方加入query.setCacheable(true)
  相关解决方案