2 malie1981 malie1981 于 2016.04.13 11:01 提问

hibernate的缓存机制的如何设置的问题?

碰到这样一个业务场景,从hibernate中取出一个类,然后更改了这个类的某些字段,然后执行了另外一个数据库操作,结果hibernate会把改变过的那个类一起保存到数据库了。怀疑是hibernate数据库的缓存里持久化了这个类,在执行其他数据库操作的时候一起提交了改变。但是奇怪的是业务类里面只有两个类有这种情况,其他类却没有出现这种情况,让人非常困惑。是不是spring或者hibernate的配置会影响到这种情况?

1个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.13 11:59

这个应该不是缓存的问题,而是级联策略问题。
参考:http://blog.sina.com.cn/s/blog_5dc12c490100dc6x.html

malie1981
malie1981 不是级联问题,不然太简单了。因为无论用任何的sql命令都会发生这个事情。而且只要清空hibernate的缓存立刻就没问题了。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【Java基础】Hibernate的缓存机制以及延迟加载
上篇博客介绍了Hibernate的基本原理,在博客尾声的时候提到了Hibernate的缓存机制以及延迟加载问题,这篇博客我们继续,将这两部分的内容补充完。     首先说说Hibernate的缓存机制,我们都知道Hiernate有一级缓存、二级缓存,但是具体的机制原理了解的清楚吗?这里我们就来好好说说Hibernate的缓存机制。先说说为什么要用缓存机制?Hibernate是一个持久层框
Hibernate的N+1问题与缓存机制讲解
在面试的过程中我对源码深度的掌握不够,所以对这个问题还是比较有深刻的感触。偶然看见别人写的解释特记录说明下。 一、N+1问题 首先我们来探讨一下N+1的问题,我们先通过一个例子来看一下,什么是N+1问题: list()获得对象:        /** * 此时会发出一条sql,将30个学生全部查询出来 */
Hibernate缓存机制剖析
Hibernate是基于缓存机制实现的。Hibernate的缓存包括:一级缓存、二级缓存和查询缓存。 Hibernate中支持懒加载load,也支持及时加载get。Hibernate采用CGlib的动态代理实现延迟加载。延迟加载采用CGlib的Enhancer类动态生成类。 比较 下面对Hibernate中一级缓存、二级缓存、查询缓存机制做一个横向比较: 相同点: 1、均为缓存,均可在一定的条件下缓存数据; 2、Hibernate的查询实现,是基于缓存机制; 3、三种缓存方式的内部实现方式
梳理hibernate篇-原理及缓存机制
Hibernate工作原理 现在我们知道了一个概念Hibernate Session,只有处于Session管理下的POJO才具有持久化操作能力。当应用程序对于处于Session管理下的POJO实例执行操作时,Hibernate将这种面向对象的操作转换成了持久化操作能力。HIbernate简要的体系结构如下图所示: 通过上图能够发现HIbernate需要一个hib
Hibernate中的缓存机制与可能遇到的问题
一、一级缓存(session级别) 概念 我们来看看hibernate提供的一级缓存:        /** * 此时会发出一条sql,将所有学生全部查询出来,并放到session的一级缓存当中 * 当再次查询学生信息时,会首先去缓存中看是否存在,如果不存在,再去数据库中查询 * 这就是hibernat
SSH(四)---Hibernate缓存机制
注:本文是答4.hibernate一级缓存和二级缓存 的,仅为了自己学习,向原博主致敬。原博文网址:http://www.cnblogs.com/sunniest/p/4646515.html 原博文网址:http://www.cnblogs.com/sunniest/p/4646515.html 一、why(为啥需要Hibernate缓存?) Hibernate是一个数据持久化框架
Hibernate缓存机制和MyBatis缓存机制
原文地址:https://my.oschina.net/u/1445731/blog/416200?p=%7B%7BtotalPage%7D%7D 摘要: mybatis缓存分为1级缓存和2级缓存 mybatis缓存分为1级缓存和2级缓存,2级缓存在sessionfactory中,1级缓存在session中。 session中的缓存在session连接关闭并被连接池回收时
hibernate缓存机制
hibernate缓存机制 hibernate缓存机制 hibernate缓存机制
hibernate缓存机制详细分析(一级、二级、查询缓存,非常清晰明白)
在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题。 随笔虽长,但我相信看完的朋友绝对能对hibernate的 N+1问题以及缓存有更深的了解。 一、N+1问题 首先我们来探讨一下N+1的问题,我们先通过一个例子来看一下,什么是N+1问题: list()获得对象
关于hibernate的三级缓存机制
Hibernate的缓存到底是几级?       关于上面的问题,大部分人会说是三级缓存机制,当然也有人会说是两级。不同的技术书籍会有不同的解释,已认为是三级缓存机制的较多,但关于三级缓存机制也有不同的解释。 其中,对于第一级缓存为session级别的缓存大家没有太大的争议。由于Session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是事务范围的缓存。第一级缓存是必需的