在Spring和Hibernate的配置文件中,我们可以对类中的方法进行事务控制,也就是说某个方法中含有多个数据库的写操作,我们可以通过创建一个Spring中的HibernateTransactionManager实例,把相应的sessionFactory注入到其的sessionFactory属性中,由事务声明的方式进行事务控制。样例如下:
<bean id="oaTM" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref bean="oaSessionFactory"/></property>
</bean>
但是这种方式有个局限性,如果该方法中既有调用Hibernate进行存储,也有通过JdbcTemplate进行数据库的写操作,如果在方法执行过程中,写数据发生异常时,只有纳入了事务管理的通过Hibernate进行存储的数据才会回滚,而通过JdbcTemplate方式进行操作的数据不会进行回滚。
原因是Hibernate与JdbcTemplate使用的是不同DBConnection,而且JdbcTemplate未申明相应的事务管理,所以要想在既使用了Hibernate,也使用了JdbcTemplate进行数据库存储操作的方法进行事务管理,需要在Spring的配置文件做适当的修改,样例如下:
<bean id="oaTM" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref bean="oaSessionFactory"/></property>
<property name="dataSource"><ref bean="oaDataSource"/></property>
</bean>
JdbcTemplate和Hibernate能被wrap到同一个事务里。成立需要几点条件:
1、使用同一个datasource;
2、事务交由HibernateTransactionManager管理;
3、相关dao以及service需要使用runtime exception体系,使用spring提供的exception可以,自己封装设计的runtime exception体系也行。
分享到:
相关推荐
struts+hibernate+spring事务配置
前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...
struts+hibernate+spring事务配置_花粉册.rar 超详细配置,有图片实例
spring1.2的jar包 博文链接:https://battlehawk.iteye.com/blog/282597
在Spring中配置Hibernate事务
spring和hibernate整合的优化配置.txt
spring3,hibernate4 配置声明式事务管理(annotation方式)
atomikos实现多数据源支持分布式事务管理(spring、tomcat、JTA) 结合spring 和durid进行配置,
Hibernate2和Hibernate3连接池配置.doc
Spring2.5+hibernate搞定分布式事务Spring2.5+hibernate搞定分Spring2.5+hibernate搞定分布式事务布式事务 第三部分
Hibernate连接SQLite配置步骤: 1、添加SQLite库: 1.1、将两个jar包:com.zy.hibernate.dialect.SQLiteDialect.jar、sqlite-jdbc-3.7.2.jar拷贝到“\WEB-INF\lib”文件夹下; 2、配置hibernate: 2.1、将...
一个小实例工程,说的是spring3+hibernate4配置声明式事务管理(annotation方式)
一个实例小工程,说的是spring3+hibernate4怎么配置声明式事务管理(xml方式)
hibernate查询,事务管理,缓存等实现。
hibernateJar包及配置文件
hibernate和spring MVC配置整合
springboot(4) 整合mybatis和hibernate 请删除项目中本地仓库的配置,或者改成国内的公共仓库,否则将无法启动
配置了tomcat之后发现jndi好简单啊,可是碰到了hibernate该怎么做呢,本例详细解析
Hibernate的事务回滚机制是指在事务执行过程中,遇到错误或异常时,Hibernate可以自动回滚事务,以确保数据库的一致性和完整性。Hibernate的事务回滚机制可以避免数据库的一致性和完整性问题。 六、总结 本文详细...
hibernate3.2 api和配置文档hibernate3.2 api和配置文档hibernate3.2 api和配置文档hibernate3.2 api和配置文档v