在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环境中结合Druid数据源和Hibernate ORM框架,利用Atomikos实现JTA(Java Transaction API)来配置分布式事务。 首先,`Spring` 是一个开源的应用框架,它提供了AOP(面向切面编程)和DI...
本文将详细讲解如何在这样的MVC架构中进行事务配置,结合"struts+hibernate+spring事务配置_花粉册.htm"和相关文件,我们将深入探讨事务管理的重要性以及具体配置步骤。 首先,理解事务是非常关键的。在数据库操作...
总的来说,Spring 3和Hibernate 4结合使用声明式事务管理,使得我们无需在代码中显式调用事务开始、提交和回滚,而是通过注解和配置文件来声明事务的边界和行为。这种方式降低了代码的复杂度,提高了可维护性和可...
综上所述,Spring、Struts和Hibernate在事务配置方面涉及的内容广泛,包括事务管理方式的选择、事务的声明、事务的回滚规则、隔离级别、超时设置等,理解并熟练应用这些知识是构建稳定、高效的企业级应用的关键。
在Spring框架中集成和配置Hibernate事务管理是企业级Java应用中的常见实践,它能提供高效且灵活的事务处理策略。Spring作为一款强大的依赖注入(DI)和面向切面编程(AOP)容器,能够轻松地管理和协调不同数据访问...
spring1.2的jar包 博文链接:https://battlehawk.iteye.com/blog/282597
在Spring和Hibernate中,注解常用于配置和简化框架的使用,例如在类和方法上使用`@Transactional`进行事务管理,或使用`@Entity`、`@Table`等定义实体和表映射。 4. **声明式事务管理**:与编程式事务管理相比,...
本项目是关于如何使用Spring MVC与Hibernate结合来实现事务管理的实践教程,通过MyEclipse自动生成所需的包和配置文件。这里将详细讲解这一过程,以及涉及到的关键知识点。 首先,Spring MVC作为Spring框架的一部分...
当一个方法被标记为@Transactional,Spring会在方法执行前后自动处理事务的开始和结束,如果出现异常,Spring会自动回滚事务,否则在方法正常结束时提交事务。 例如,你可以在一个Service类的配置中写入如下代码: ...
### Spring与Hibernate整合的优化配置 #### 一、Spring与Hibernate简介 - **Spring框架**:作为Java开发领域中的一款主流轻量级框架,Spring主要提供了依赖注入(DI)和面向切面编程(AOP)的功能,使得Java开发...
- 配置事务时,注意隔离级别、传播行为和回滚规则的设置,以满足不同的事务需求。 - 事务管理应尽可能局限于需要事务的代码块,避免不必要的性能开销。 - 使用AOP事务管理时,确保被事务管理的方法是public的,...
本教程将深入探讨如何使用XML配置来设置Spring3和Hibernate4的声明式事务管理。 首先,我们需要了解什么是声明式事务管理。与编程式事务管理不同,声明式事务管理允许开发者通过注解或XML配置来声明事务边界,而...
1. **配置Hibernate**:创建`hibernate.cfg.xml`配置文件,设置数据库连接信息,以及缓存和事务策略。 2. **实体类和映射文件**:为每个数据库表创建对应的Java实体类,并使用注解或XML文件定义其与表的映射关系。 ...
本文将深入探讨Hibernate中的事务和并发控制,这对于开发高效、稳定的数据库应用至关重要。 首先,我们来理解Hibernate中的事务管理。在数据库操作中,事务是保证数据一致性的重要手段。一个事务包含了一组数据库...
Spring2.5+hibernate搞定分布式事务Spring2.5+hibernate搞定分Spring2.5+hibernate搞定分布式事务布式事务 第三部分
Hibernate提供了两种主要的事务处理模式:JDBC事务管理和JTA事务管理。 - **JDBC事务管理**:这是最基本的事务管理方式,适用于单个应用程序上下文中。它通过设置连接的自动提交属性为`false`来开启事务,并在提交...
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、将...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来操作数据库,从而简化了...理解和掌握Hibernate的配置、映射、工作流程及其优化技巧,对于提升Java应用的数据处理能力至关重要。