当前位置:编程学习 > JAVA >>

声明式事务处理的疑问

自己使用spring和hibernate结合,利用声明事务+hibernateTemplate来处理事务和完成具体操作。
利用sprin易做图生的service代理对象调用dao的save方法,这里的save方法执行后数据能够正常插入数据库,但是当我在dao的save方法中使用hibernateTemplate.getSessionFactory().getCurrentSession().getTransaction().isActive()方法时输出的却是false
save方法是正常的执行了,数据也正常插入了,就是不理解这个isActive()的结果是什么原因,求指教。  声明式事务 spring --------------------编程问答-------------------- 你可以在hibernateTemplate.getSessionFactory().getCurrentSession().save()前后打印下它的值。 --------------------编程问答--------------------
引用 1 楼 fangmingshijie 的回复:
你可以在hibernateTemplate.getSessionFactory().getCurrentSession().save()前后打印下它的值。

我就是在save方法之前输出的isActive(),结果是false我才好奇的。网上找的资料看来好像是获得的session不同,但是我觉得session是从指定的线程中获取的应该是同一对象才对。 --------------------编程问答-------------------- 事物应该是spring容器管理的吧。不论你db层用的hibernate 或ibatis 等等。spring都不应该去改其内部的东西。 --------------------编程问答-------------------- 确定这样获得的Transaction
hibernateTemplate.getSessionFactory().getCurrentSession().getTransaction()

和声明式配置的Transaction是同一个?

http://www.iteye.com/problems/67159 --------------------编程问答-------------------- 请教了下别人:spring声明式事务处理的事务是在给hibernteTemplate对象注入时才出发开启的,自己的方法是得不到那个事务的,还有getTransaction是返回一个新的事务。
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,