`
aaronccc
  • 浏览: 368 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

jdbc和hibernate事务合并

阅读更多
场景是这样的,一个模块中使用jdbcTemplate对数据库进行操作,另一模块中使用hibernate。要将这两个操作放在一个事务中执行。
  使用spring配置如下:
<bean id="sessionFactory"  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
</bean>

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

<bean id="myDao"  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager" ref="transactionManager"/>
    <property name="target">
        <bean class="MyDaoImpl">
            <property name="dataSource" ref="dataSource"/>
            <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
    </property>
    <property name="transactionAttributes">
        <props>
            <prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop>
            <prop key="*">PROPAGATION_REQUIRED</prop>
        </props>
    </property>
</bean>

如果jdbc部分不是使用的jdbcTemplate,则需要向使用jdbc的DAO注入TransactionAwareDataSourceProxy,而不是原生的DataSource。
或者调用DataSourceUtils.getConnection来获得Connection
分享到:
评论

相关推荐

    spring-hibernate-maven-transaction整合

    在`applicationContext.xml`中配置PlatformTransactionManager,选择合适的事务管理策略,如DataSourceTransactionManager(适用于JDBC)或HibernateTransactionManager(适用于Hibernate)。 5. **编写业务代码**...

    hibernate源码release-4.1.4.Final版

    Hibernate支持JTA和JDBC两种事务管理方式。在Java EE环境下,推荐使用JTA进行分布式事务控制;而在Java SE环境中,通常采用JDBC事务管理。 六、持久化操作 Hibernate提供了save()、update()、merge()和delete()方法...

    Hibernate Developer Guide

    ##### 2.3 Hibernate事务使用 在Hibernate中使用事务的典型方法是在Session的生命周期内管理事务。 ##### 2.4 事务性模式(和反模式) **241. 会话/操作反模式** 会话/操作反模式指的是在每个操作都开启一个新的...

    最新 hibernate.4.1.6.Final devguide pdf版

    Hibernate 支持多种事务类型,包括 JDBC、JTA、CMT(Container Managed Transactions)和自定义事务,以及遗留事务处理方式。同时,框架还提供了详细的事务使用指南和推荐的事务模式,如“Session-per-operation”反...

    Hibernate中大量数据的更新

    Hibernate 的批量抓取机制允许将多个INSERT 语句合并成一个批量插入语句,从而提高性能。在 Hibernate 配置文件中,可以设置 `hibernate.jdbc.batch_size` 参数来指定批量抓取的大小。 如何实现批量更新 在 ...

    Hibernate基础教程

    Hibernate支持JTA(Java Transaction API)和JDBC事务管理。在应用程序中,可以通过编程式或声明式的方式来管理事务。 本教程的"基础Hibernate 教程.txt"文件,可能包含了关于这些知识点的详细讲解,包括代码示例和...

    Hibernate开发向导

    - **Hibernate事务使用**:提供了更高级别的抽象,简化了事务管理过程。 - **事务模式**:介绍了几种常见的事务处理模式及其适用场景。 - **Session-per-operation反模式**:每次操作都开启一个新的Session,不...

    hibernate_first_new项目源码

    - hibernate.cfg.xml文件:这是Hibernate的配置文件,包含了数据库连接信息、JDBC驱动、方言、缓存策略等设置。 - Entity映射:使用Hibernate的注解或XML文件(如.hbm.xml)将Java类映射到数据库表,定义实体属性...

    Hibernate视频教程免费下载

    通过以上对Hibernate视频教程的知识点详细介绍,可以帮助读者更全面地理解Hibernate框架的核心概念和技术细节,并掌握如何在实际项目中应用这些技术。希望本篇总结能够为学习Hibernate的朋友提供有价值的参考。

    Hibernate的Session的javadoc

    了解并熟练掌握这些概念和方法,能帮助开发者更好地理解和利用Hibernate的透明持久化能力,有效地管理对象的状态和事务,从而提高应用的性能和数据一致性。对于初学者来说,阅读Hibernate的javadoc是非常有益的,...

    struts2.3.14+spring3.1.1+hibernate4.1.0 jar包

    Spring3.1.1在Spring3.x系列中是一个稳定的版本,它引入了Groovy支持、配置元数据的合并、简化测试等新特性,使得开发者能够更加灵活和高效地构建应用。 Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用...

    Hibernate实战(第2版 中文高清版)

    第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化   1.1 什么是持久化   1.1.1 关系数据库   1.1.2 理解SQL   1.1.3 在Java中使用SQL   1.1.4 面向对象应用程序中的持久化   1.2 范式不...

    hibernate的session.flush

    `Session.flush()`的实现涉及到对持久化对象的跟踪、脏检查算法以及与JDBC连接的交互,这些都是深入学习Hibernate时的重要内容。 总结来说,`Session.flush()`是Hibernate中不可或缺的一部分,它确保了数据库与应用...

    hibernate-3.2.6-src_b.rar

    4. Transaction:事务处理接口,Hibernate提供了JTA和JDBC两种事务管理方式,确保了数据的一致性和完整性。 5. Mappings:ORM的核心,通过XML或注解形式将Java类映射到数据库表,定义对象关系。 四、源码学习价值 ...

    Hibernate笔记

    Hibernate默认关闭了JDBC的自动事务提交,因此需要开发者显式地开启和提交事务。例如,使用`session.beginTransaction()`开始事务,`transaction.commit()`提交事务。 3. MySQL数据库引擎选择: MySQL 5.0之前,...

    Hibernate_day04.zip

    Hibernate提供了基于JTA(Java Transaction API)和JDBC的事务管理。而对象的状态转换包括瞬时态、持久态、托管态和游离态,理解这些状态有助于更好地控制对象的生命周期和数据库交互。 在实际项目中,我们还会学习...

    5天入门hibernate

    - **事务处理**: Session支持JTA和JDBC两种事务管理方式,通常使用Transaction接口进行事务控制。 **5. 查询** - **HQL查询**: 使用HQL语句进行对象查询,如`List customers = session.createQuery("from Customer...

    Hibernate连接池的三种配置方式

    - `jdbc.batch_size`设置批处理的大小,这里是50,意味着每次执行SQL时,会将50条操作合并成一个批处理。 - `cache.use_second_level_cache`设为false,表示不启用二级缓存。 - `current_session_context_class`...

    hibernate-3.6.7中文帮助文档

    6. **事务管理**:Hibernate 提供了基于 JTA(Java Transaction API)和 JDBC 事务管理方式,确保了数据操作的原子性、一致性、隔离性和持久性。 7. **缓存机制**:为了提高性能,Hibernate 集成了二级缓存,包括 ...

Global site tag (gtag.js) - Google Analytics