`
- 浏览:
367 次
-
场景是这样的,一个模块中使用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
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在`applicationContext.xml`中配置PlatformTransactionManager,选择合适的事务管理策略,如DataSourceTransactionManager(适用于JDBC)或HibernateTransactionManager(适用于Hibernate)。 5. **编写业务代码**...
Hibernate支持JTA和JDBC两种事务管理方式。在Java EE环境下,推荐使用JTA进行分布式事务控制;而在Java SE环境中,通常采用JDBC事务管理。 六、持久化操作 Hibernate提供了save()、update()、merge()和delete()方法...
##### 2.3 Hibernate事务使用 在Hibernate中使用事务的典型方法是在Session的生命周期内管理事务。 ##### 2.4 事务性模式(和反模式) **241. 会话/操作反模式** 会话/操作反模式指的是在每个操作都开启一个新的...
Hibernate 支持多种事务类型,包括 JDBC、JTA、CMT(Container Managed Transactions)和自定义事务,以及遗留事务处理方式。同时,框架还提供了详细的事务使用指南和推荐的事务模式,如“Session-per-operation”反...
Hibernate 的批量抓取机制允许将多个INSERT 语句合并成一个批量插入语句,从而提高性能。在 Hibernate 配置文件中,可以设置 `hibernate.jdbc.batch_size` 参数来指定批量抓取的大小。 如何实现批量更新 在 ...
Hibernate支持JTA(Java Transaction API)和JDBC事务管理。在应用程序中,可以通过编程式或声明式的方式来管理事务。 本教程的"基础Hibernate 教程.txt"文件,可能包含了关于这些知识点的详细讲解,包括代码示例和...
- **Hibernate事务使用**:提供了更高级别的抽象,简化了事务管理过程。 - **事务模式**:介绍了几种常见的事务处理模式及其适用场景。 - **Session-per-operation反模式**:每次操作都开启一个新的Session,不...
- hibernate.cfg.xml文件:这是Hibernate的配置文件,包含了数据库连接信息、JDBC驱动、方言、缓存策略等设置。 - Entity映射:使用Hibernate的注解或XML文件(如.hbm.xml)将Java类映射到数据库表,定义实体属性...
通过以上对Hibernate视频教程的知识点详细介绍,可以帮助读者更全面地理解Hibernate框架的核心概念和技术细节,并掌握如何在实际项目中应用这些技术。希望本篇总结能够为学习Hibernate的朋友提供有价值的参考。
了解并熟练掌握这些概念和方法,能帮助开发者更好地理解和利用Hibernate的透明持久化能力,有效地管理对象的状态和事务,从而提高应用的性能和数据一致性。对于初学者来说,阅读Hibernate的javadoc是非常有益的,...
Spring3.1.1在Spring3.x系列中是一个稳定的版本,它引入了Groovy支持、配置元数据的合并、简化测试等新特性,使得开发者能够更加灵活和高效地构建应用。 Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用...
第一部分 从Hibernate和EJB 3.0开始 第1章 理解对象/关系持久化 1.1 什么是持久化 1.1.1 关系数据库 1.1.2 理解SQL 1.1.3 在Java中使用SQL 1.1.4 面向对象应用程序中的持久化 1.2 范式不...
`Session.flush()`的实现涉及到对持久化对象的跟踪、脏检查算法以及与JDBC连接的交互,这些都是深入学习Hibernate时的重要内容。 总结来说,`Session.flush()`是Hibernate中不可或缺的一部分,它确保了数据库与应用...
4. Transaction:事务处理接口,Hibernate提供了JTA和JDBC两种事务管理方式,确保了数据的一致性和完整性。 5. Mappings:ORM的核心,通过XML或注解形式将Java类映射到数据库表,定义对象关系。 四、源码学习价值 ...
Hibernate默认关闭了JDBC的自动事务提交,因此需要开发者显式地开启和提交事务。例如,使用`session.beginTransaction()`开始事务,`transaction.commit()`提交事务。 3. MySQL数据库引擎选择: MySQL 5.0之前,...
Hibernate提供了基于JTA(Java Transaction API)和JDBC的事务管理。而对象的状态转换包括瞬时态、持久态、托管态和游离态,理解这些状态有助于更好地控制对象的生命周期和数据库交互。 在实际项目中,我们还会学习...
- **事务处理**: Session支持JTA和JDBC两种事务管理方式,通常使用Transaction接口进行事务控制。 **5. 查询** - **HQL查询**: 使用HQL语句进行对象查询,如`List customers = session.createQuery("from Customer...
- `jdbc.batch_size`设置批处理的大小,这里是50,意味着每次执行SQL时,会将50条操作合并成一个批处理。 - `cache.use_second_level_cache`设为false,表示不启用二级缓存。 - `current_session_context_class`...
6. **事务管理**:Hibernate 提供了基于 JTA(Java Transaction API)和 JDBC 事务管理方式,确保了数据操作的原子性、一致性、隔离性和持久性。 7. **缓存机制**:为了提高性能,Hibernate 集成了二级缓存,包括 ...