我们刚刚开始使用Hibernate,并且仍然习惯它的工作方式.
在我们看到的事情上,即使在所有会话都关闭且引用超出范围之后,hibernate仍然似乎在其缓存中维护以前使用的数据库值.
我们的代码可以在多个过程中从一组表中读取.因为所有内存都非常谨慎地释放,所以后来的传递速度变慢了.
有没有办法强制Hibernate清除它的缓存?
显式调用System.gc()没有帮助.(是的,我知道这是一个建议)
附加信息:我们已明确禁用二级缓存.
Rob*_*b H 10
您可以尝试调用Session.clear来强制清除第一级缓存.请务必先调用Session.flush将任何挂起的更改写入数据库.如果"修复"了问题,那么我怀疑某些东西仍然保持对会话的引用,防止缓存中的对象被垃圾收集.您可能需要获取程序的堆转储以跟踪泄漏.
| 归档时间: |
|
| 查看次数: |
13682 次 |
| 最近记录: |