hibernate的缓存问题,一直比较疑惑。我知道hibernate一级缓存的底层使用map结构实现的。这里的疑问是:hibernate缓存存储的到底有哪些数据:难道只有PO?
如果有以下语句:
Objec max = (Object) this.getSession().createQuery("select max(" + code + ")" + " from " + entity).uniqueResult();
}
hibernate会缓存这个max对象吗?? max对象不是pojo。
只想弄明白:hibernate 会把什么数据放到一级缓存?难道从数据库取出来的数据都会放进去吗?
如果有以下语句:
Objec max = (Object) this.getSession().createQuery("select max(" + code + ")" + " from " + entity).uniqueResult();
}
hibernate会缓存这个max对象吗?? max对象不是pojo。
只想弄明白:hibernate 会把什么数据放到一级缓存?难道从数据库取出来的数据都会放进去吗?
解决方案 »
- 今天面试的一道面试题 请高手指点
- 关于APPLET的问题。急
- 一个程序和一个问题
- 关于sql标记库的 急!!
- 用appletviewer运行一个APPLET程序,能够做一个关闭按钮然后点击这个按钮关闭applet窗体吗?
- 图象文件数据读入到数组当中的问题?
- 如何更新JTable中某一cell的值,能否不通过修改此JTable的datamodel值来更新,而直接更新如JTable.setValueAt(obj,rowIndwx,columnIndex)
- 再问一次怎么给可执行的jar文件换个图符?有没有高手?
- 关于包的问题!
- 请问哪里有下载JAVA程序源码的?
- 一个j2se项目打成jar包在服务器运行后修改其中properties配置文件
- SWING setSize
和你查询所用的方式有关(比如:get、load)等
还有就是你的缓存策略
其实你找点资料全面看一下就知道
同一个conn在进行load的时候会进行缓存处理。也就是说 第一次load的时候 hibernate默认会进行缓存处理
当你第二次load的时候 直接从hibernate缓存中查找, get不进行缓存处理。如果lz要想搞深hibernate的缓存机制的, 建议看一下其自带的 ehcache框架, 学习一下其中的思想
对你使用hibernate很有帮助的, 那个学起来也不是很费劲,我博客里有一些文档方便的话可以一起探讨