请教!!!!二级缓存中的hibernate.cache.use_query_cache的含义 二级缓存中的hibernate.cache.use_query_cache的含义是什么?值为:true和false时的区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 感觉设为tue和false,在查询时没区别,都有缓存,都能获得数据 你光在hibernate.cfg.xml中设置开启二级缓存是不行的。必须在对象的映射文件配置才行。好与不好,这个需要通过数据说话的。比如你个大的数据的query。你可以通过查询时间的差来验证缓存的好处。 二级缓存中的hibernate.cache.use_query_cache的含义是这样的,你设置它为true时,表明它的二级缓存就是开启的,false时就是没有开启。具体在实际例中在哪里体现出它的效果,我也不清楚。 表示开启查询缓存,命中率是比较低的,在查询时还要设置query.setCache(true); lz 不知道这个看后会不会明白点http://blog.csdn.net/ID19870510/archive/2010/07/15/5738156.aspx 再问一个问题,当hibernate的<property name="show_sql">true</property>,即控制台显示sql语句打开着时,如果查询时是从数据库中获得的就会在控制台显示sql语句,如果是从缓存(包括一级缓存和二级缓存)中获得就不再在控制台显示sql语句了?这种说法对吗? 之所以 打印出 sql 语句 是因为 hibernate 查询了数据了。(到数据库里查,当然要执行sql了)从缓存中查询出来的数据, 是已经从数据库里查出来的, (没必要再次查询数据库,当然也就不执行sql了)我的理解是: 只要是 在console打印除了 sql, 那么 相应的操作必定是对数据库进行了相应的操作 (增删改查) 一级缓存是 session 级别的, session 关闭 ,一级缓存就会失效吧。 数据库关闭, 一级缓存肯定会被清楚至于啥时候清楚 那就得看 jvm 的垃圾收集 了。 我只理解这么多了。 呵呵 再 补充点: List ls = query.list(); // 第一次 从数据库查询: 完成后将结果赋给 ls由于缓存机制的存在,第二次查询的时候 ls 中的数据仍然有效的, 所有 直接 操作 ls 而不是操作数据库打印 sql <==> 操作数据库不打印 <==> 无数据库操作 java中switch语句可以这样写吗??求解释 一个数组的问题,O(∩_∩)O谢谢 Java thread的sleep(long)的误差,跟系统相关多少? Java 新手 这道题请予指点…… 如何在JPanel里通过点击按钮激活文件对话框来打开图片文件 java图形界面中如何通过点击一个按钮来下载网上的某个文件 一个简单的问题 用JAVA编写COM组件 急问:从ftp取文件用什么方法比较好? 用Java编写代理服务器 急!!!急!!!Spring+Hibernate的配置文件 问题????? 继承内部类的问题
好与不好,这个需要通过数据说话的。比如你个大的数据的query。你可以通过查询时间的差来验证缓存的好处。
再问一个问题,
当hibernate的<property name="show_sql">true</property>,即控制台显示sql语句打开着时,
如果查询时是从数据库中获得的就会在控制台显示sql语句,如果是从缓存(包括一级缓存和二级缓存)中获得就不再在控制台显示sql语句了?
这种说法对吗?
之所以 打印出 sql 语句 是因为 hibernate 查询了数据了。(到数据库里查,当然要执行sql了)从缓存中查询出来的数据, 是已经从数据库里查出来的, (没必要再次查询数据库,当然也就不执行sql了)
我的理解是: 只要是 在console打印除了 sql, 那么 相应的操作必定是对数据库进行了相应的操作 (增删改查)
一级缓存是 session 级别的, session 关闭 ,一级缓存就会失效吧。
数据库关闭, 一级缓存肯定会被清楚至于啥时候清楚 那就得看 jvm 的垃圾收集 了。 我只理解这么多了。 呵呵
不打印 <==> 无数据库操作