`
- 浏览:
29915 次
- 性别:
- 来自:
宁波
-
jdo dao和jdbc dao能否在同一个事务里这我不太清楚。因为我没用过jdo daosupport。
但是jdbc daosupport和hibernate daosupport却能被wrap到同一个事务里。成立需要几点条件:
1、使用同一个datasource
2、事务交由hibernateTransactionManager管理
3、相关dao以及service需要使用runtime exception体系,使用spring提供的exception可以,自己封装设计的runtime exception体系也行。
与此相关的事务代码片断在HibernateTransactionManager类中。最好可以把DatasourceTransactionManager和HibernateTransactionManager对比来看。
在此贴上几个源码片断,多余的我就不解释了。相信大家一看自明。
HibernateTransactionManager#doGetTransaction
由此可以看出hibernateTransactionManager可以检测到绑定在当前线程上的connection
HibernateTransactionManager#doBegin
由此可以看出,在真正启动一个事务时,hbTxnManager会先把connection绑定到当前线程,再绑定session到当前线程,由TransactionSynchronizationManager统一管理。并且上面提到的connection是从session中取得的,也就是说,无论是jdbc dao还是hibernate dao本质上使用的是同一个database connection
因此得出结论:HibernateTransactionManager实际上是可以同时管理由JdbcTemplate或JdbcDaoSupport实现的dao以及HibernateTemplate或HibernateDaoSupport实现的事务的。
<bean id="proxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<!-- 需要自动创建事务代理的bean -->
<list>
<value>*Service</value>
<!-- <value>*Dao</value> -->
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
以自动创建事务代表的bean 配置时,如果该对象屏敝事务的话,则Bean 的名字不要以Service结束就可以了。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Spring+Hibernate 使用TransactionInterceptor声明式事务配置
spring3,hibernate4 配置声明式事务管理(annotation方式)
在Spring中配置Hibernate事务
前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...
在spring中配置hibernate事务
spring mvc hibernate整合,采用MyEclipse自动生成包和配置文件,jar包可能有多余,但是不影响整体效果。服务器tomcat。数据库mysql。
struts+hibernate+spring事务配置
一个小实例工程,说的是spring3+hibernate4配置声明式事务管理(annotation方式)
spring与hibernate的整合 spring事务的配置
一个实例小工程,说的是spring3+hibernate4怎么配置声明式事务管理(xml方式)
spring+hibernate spring配置事务
spring1.2的jar包 博文链接:https://battlehawk.iteye.com/blog/282597
Spring_Hibernate使用TransactionInterceptor声明式事务配置.doc
spring3、 hibernate4 配置声明式事务管理(annotation方式)
本程序是struts spring hibernate的完整环境配置, 包括: struts1.3 spring 2.0 hibernate 3.1 的所有完整的包。 BeanNameAutoProxyCreator事务处理 中文乱码解决 MD5程序加密 AJAX验证码等 ...
struts+hibernate+spring事务配置_花粉册.rar 超详细配置,有图片实例
一、 XML,使用tx标签配置拦截器实现事务 一、 Annotation方式 以下所使用环境为Spring4.0.3、Hibernate4.3.5
这是本人上课过程中为学生讲解hibernate、spring和mysql开发简单项目的截图汇集,大家需要先自己完成数据库以及JDBC数据源的配置,之后按照该截图的顺序就能完成一个最简单的支持数据库事务处理的SH系统,(如果使用...
Spring将事务管理分成了两类: * 编程式事务管理 * 手动编写代码进行事务管理.(很少使用) * 声明式事务管理: * 基于TransactionProxyFactoryBean的方式.(很少使用) * 需要为每个进行事务管理的类,配置一个...