Hibernate的事务提交 - session事务、flush机制疑惑

Hibernate 的事务提交,是如何控制的。

今天的工作中,遇到通过hibernate 操作dbdeleteupdateload 的操作,取出的数据总是显示没有变化,而数据库中数据已经改变。对hibernate 的何时进行事务提交有些疑惑。调试再三,解决办法、想法记录如下。

   SSH 层次,aop 设置事务,

<!-- AspectJ 方式 定义 AOP -->

    < aop:config proxy-target-class = "true" >

       < aop:advisor pointcut = "execution(* com.icer.arco.*.service.*Manager.*(..))" advice-ref = "txAdvice" />

    </ aop:config >

Manager 中,调用dao.deleteObj(obj);

    For(objList) //objList 是与obj 具相同外键的对象列表

{

    dao.save(objList.get(i));// 更新其order 属性

}

Forward 至同一action 中另一method 中,load 出所有obj list ,显示至页面。

显示的居然还是未删除此对象前的数据,而此时查看数据库已无。

难道不是应该在action 中调用manager 完毕后提交session 吗?(aop 设置也是控制service 层)

没想明白。

后在delete 操作后,强制session flushok

  dao.getSessionFactory().getCurrentSession().flush();

   dao.getSessionFactory().getCurrentSession().clear();

 

      

hibernatesessionflush 机制还有待研究。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值