`

Spring JDBC和Hibernate混用时,如何配置事务管理

阅读更多
    由于我们项目的需求比较变态,一部分功能由于需要通过数据库配置表动态生成持久化逻辑,所以只得采用Spring JDBC,而另一部分的业务数据模型比较固定,所以我打算对这部分使用Hibernate。这样,一个应用系统同时存在Spring JDBC和Hibernate两种持久化技术。
     我采用Spring 2.0,通过给注解驱动的方式进行事务管理,也就是说在Service接口中打@Transaction注解,并在配置文件中配置:
    <bean id="transactionManager"
	class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager" /> 

    但是一个Spring容器只能配置一个配置一种类型的事务管理器,要么使用基于JDBC的
  DataSourceTransactionManager,要么使用Hibernate的HibernateTransactionManager。
  现在我是同时需要DataSourceTransactionManager和HibernateTransactionManager,而
   <tx:annotation-driven >只允许设置一个事务管理器。如果我要让Spring JDBC和Hibernate
  这两种方式共存于一个应用系统中,请问该如何配置呢?
      不知哪位朋友有遇到过和我相似的问题,请伸出您的热忱双手吧,帮我分析一下,我快疯了:(
   
分享到:
评论
7 楼 freesoul 2007-12-25  
我也找到了Spring API DOC的说明

引用
This transaction manager is appropriate for applications that use a single Hibernate SessionFactory for transactional data access, but it also supports direct DataSource access within a transaction (i.e. plain JDBC code working with the same DataSource). This allows for mixing services which access Hibernate and services which use plain JDBC (without being aware of Hibernate)! Application code needs to stick to the same simple Connection lookup pattern as with DataSourceTransactionManager (i.e. DataSourceUtils.getConnection(javax.sql.DataSource) or going through a TransactionAwareDataSourceProxy).
6 楼 daquan198163 2007-12-25  
http://www.iteye.com/topic/37707
5 楼 freesoul 2007-12-25  
cammette 写道
只要使用org.springframework.orm.hibernate3.HibernateTransactionManager就可以了,不必单独为jdbc配事务


我也有这方面的疑问,那是不是说

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>


	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>


这两者就是完全等价的呢?在一个使用了jdbc和Hibernate的应用中,bean配置随意使用一个即可,或者全部使用HibernateTransactionManager的transactionManager即可呢??

谁能详细说明一下,谢谢!
4 楼 cammette 2007-12-12  
只要使用org.springframework.orm.hibernate3.HibernateTransactionManager就可以了,不必单独为jdbc配事务
3 楼 realorg 2007-10-12  
关注ing...

2 楼 ghsea 2007-10-11  
dfd
1 楼 stamen 2007-10-11  
    我补充一下,同一个表,同一个DAO我不会同时使用JDBC和Hibernate,是一个模块完全使用JDBC,而另外一个模块完成使用Hibernate,所以不会有缓存更新两两不相知的问题。我的问题是一个采用Spring JDBC的模块和一个采用Hibernate的模块共存于一个系统中,我要如何在Spring中进行事务管理配置。谢谢!

相关推荐

    spring hibernate,spring jdbc事务管理

    两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml是基于mysql和mssql, applicationContext3.xml基于两个mssql, ...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    总的来说,Spring 3和Hibernate 4结合使用声明式事务管理,使得我们无需在代码中显式调用事务开始、提交和回滚,而是通过注解和配置文件来声明事务的边界和行为。这种方式降低了代码的复杂度,提高了可维护性和可...

    spring mvc+hibernate实现事务管理(配置文件版)

    本项目是关于如何使用Spring MVC与Hibernate结合来实现事务管理的实践教程,通过MyEclipse自动生成所需的包和配置文件。这里将详细讲解这一过程,以及涉及到的关键知识点。 首先,Spring MVC作为Spring框架的一部分...

    Spring JDBC与事务管理

    javaEE 实验三 Spring JDBC与事务管理, 一、实验目的 1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式; 5、掌握...

    spring分别与jdbc和hibernate结合的事务控制--案例

    总之,Spring通过其灵活的事务管理机制,极大地简化了与JDBC和Hibernate集成时的事务控制。无论是在简单还是复杂的业务逻辑中,Spring都能提供可靠的事务管理方案,确保数据的正确性和一致性。通过理解并熟练运用...

    在Spring中配置Hibernate事务

    在Spring框架中集成和配置Hibernate事务管理是企业级Java应用中的常见实践,它能提供高效且灵活的事务处理策略。Spring作为一款强大的依赖注入(DI)和面向切面编程(AOP)容器,能够轻松地管理和协调不同数据访问...

    spring3+hibernate4配置声明式事务管理(annotation方式)

    在Spring和Hibernate中,注解常用于配置和简化框架的使用,例如在类和方法上使用`@Transactional`进行事务管理,或使用`@Entity`、`@Table`等定义实体和表映射。 4. **声明式事务管理**:与编程式事务管理相比,...

    Spring事务管理和SpringJDBC思维导图

    本话题主要关注Spring的两个重要模块:事务管理和Spring JDBC。这些知识点对于任何使用Spring进行后端开发的程序员来说都是至关重要的。 首先,我们来深入理解Spring事务管理。事务是数据库操作的基本单元,它确保...

    spring3、 hibernate4 配置声明式事务管理(annotation方式)

    - `PlatformTransactionManager`:事务管理器接口,具体实现有`DataSourceTransactionManager`(适用于JDBC事务)和`HibernateTransactionManager`(适用于Hibernate事务)。 - `@Transactional`:用于标记事务...

    基于Java 通用数据访问组件,基于mybatis、spring jdbc、hibernate.zip

    Spring JDBC则提供了更好的事务管理和异常处理;而Hibernate则在对象关系映射上做得非常出色,对于复杂的企业级应用更为适用。 在实际开发中,选择哪种数据访问组件主要取决于项目需求和团队技术栈。例如,如果项目...

    spring JDBC事务管理

    标题中的“Spring JDBC事务管理”是指在Spring框架中如何利用JDBC进行数据库操作时的事务控制。Spring提供了多种方式来管理事务,使得开发者能够在复杂的业务逻辑中更好地控制数据的持久化过程,确保数据的一致性和...

    spring 结合druid和hibernate使用jta配置分布式事务

    在Spring中配置Druid和Hibernate结合Atomikos进行分布式事务管理的步骤如下: 1. **引入依赖**:在项目中添加Spring、Druid、Hibernate、Atomikos相关的Maven或Gradle依赖。 2. **配置Atomikos**:创建Atomikos的...

    spring2.5+hibernate基于xml配置的实例

    这个"spring2.5+hibernate基于xml配置的实例"是一个经典的组合,展示了如何在旧版本的Spring(2.5)和Hibernate中通过XML配置文件来整合和管理应用的组件。 首先,Spring 2.5是Spring框架的一个早期版本,它引入了...

    基于Spring JDBC的事务管理

    本资源主要介绍基于Spring JDBC的事务管理,包括事务的定义、使用 @Transactional 注解、Spring JDBC的事务管理机制、事务的ACID特性、事务的传播、事务的隔离等内容。 事务的定义 事务是一种数据库中能够保证一...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    Hibernate作为流行的ORM(对象关系映射)框架,提供了对JDBC事务的封装。编程式事务管理允许开发者手动控制事务的边界。以下是一些关键概念: 1. **Session**: Hibernate的核心接口,负责对象的持久化。在事务开始...

    spring_JDBC整合包

    4. **JdbcTransactionManager**: 这是Spring提供的事务管理器,它利用JDBC的API来管理事务,支持编程式和声明式事务控制。 5. **DataSource**: Spring JDBC通常与DataSource一起使用,DataSource是Java的JNDI服务的...

    spring3+hibernate4声明式事务配置(xml方式)

    本教程将深入探讨如何使用XML配置来设置Spring3和Hibernate4的声明式事务管理。 首先,我们需要了解什么是声明式事务管理。与编程式事务管理不同,声明式事务管理允许开发者通过注解或XML配置来声明事务边界,而...

    spring4配置hibernate3

    解压后,可以通过IDE导入项目,查看其配置文件、实体类、映射文件以及测试用例,学习和理解Spring与Hibernate的整合过程。这种集成有助于提升开发效率,降低系统的复杂性,同时也为应用程序的扩展和维护提供了便利。...

    SpringAOP整合Hibernate并使用事务

    - 事务管理配置:启用注解驱动的事务管理,并配置事务属性。 - 业务服务类:使用`@Transactional`注解标记事务边界,实现业务逻辑。 7. **注意事项** - 配置事务时,注意隔离级别、传播行为和回滚规则的设置,以...

    spring hibernate 事务管理学习笔记(一)

    本文将深入探讨Spring与Hibernate整合时的事务管理,帮助你更好地理解和运用这些技术。 首先,Spring框架是Java企业级应用的基石,它提供了一种依赖注入(Dependency Injection,DI)的方式,使得组件之间的耦合度...

Global site tag (gtag.js) - Google Analytics