`

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+3.x企业应用开发实战光盘源码(全)

     第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。  第10章:对实际应用中Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再有...

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

     第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。  第10章:对实际应用中Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再...

    ssm ssh配置整合

    1. **Spring**:与SSM中的Spring配置类似,也是用于管理应用对象和依赖注入。 2. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它拦截HTTP请求,然后通过Action类进行业务逻辑处理。`struts-default....

    myeclipse 10最新中文包-一分钟汉化

    深圳电信培训中心 徐海蛟...MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。

    java代码规范1

    这些规范不仅适用于Java,也适用于基于Java的框架如Spring、Hibernate等。遵循这些规范,可以提高代码质量,减少误解,并使代码更容易维护。在实际开发中,应结合团队的具体需求和习惯进行调整。

Global site tag (gtag.js) - Google Analytics