关于hibernate的saveOrUpdate方法的一个问题

我在dao的实现层调用了session的saveOrUpdate方法来进行保存或者更新数据,在业务层通过HQL语句查询到一条记录啊,重新set了它的一个属性,然后执行da... 我在dao的实现层调用了session的saveOrUpdate方法来进行保存或者更新数据,在业务层通过HQL语句查询到一条记录啊,重新set了它的一个属性,然后执行dao层的saveOrUpdate,但是不进行更新,但是加了seesion.flush()之后就更新了。在业务层我增加了事务的控制,但是在事务提交前不是默认执行力flush方法吗?为什么需要显示调用才起作用呢? 展开
 我来答
babyhhcsy
推荐于2016-07-17 · TA获得超过102个赞
知道答主
回答量:163
采纳率:100%
帮助的人:56.9万
展开全部
hibernate的一级缓存中,flush是清除缓存,将hibernate快照当中的数据一次性的提交的,hibernate在查询数据的时候,他只会从数据查询一次,然后将数据放到内存当中,当你在set属性时,hibernate会和内存中的做对比,如果只不一样的话,就修改其值, ession.flush清除缓存,清除缓存时就会提交事务~
zj_ljgong
推荐于2018-04-13 · TA获得超过269个赞
知道小有建树答主
回答量:482
采纳率:78%
帮助的人:136万
展开全部
hibernate.transaction.flush_before_completion 如果开启, session在事务完成后将被自动清洗(flush)。
hibernate.transaction.auto_close_session 如果开启, session在事务完成后将被自动关闭。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-10
展开全部
再加一个spring就方便多了
追问
加了spring的事务控制了

追答
那就在Dao写save方法可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
死神的完美世界
2013-05-10
知道答主
回答量:9
采纳率:0%
帮助的人:3.9万
展开全部
事务?你加入的是spring做的方法切面事务吗?
追问
加了spring的事务控制了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式