Hibernate与JDBC事务整合
2015-07-08 13:52
323 查看
一般大家都会使用Spring声明型事务 transactionAttributes 为 PROPAGATION_REQUIRED
Hibernate 使用 HibernateTransactionManager 、JDBC(iBATIS) 使用 DataSourceTransactionManager
当需要将它们整合到一个事务中的时候
普通的做法是配置统一的DataSource, Hibernate与JDBC(iBATIS) 都使用HibernateTransactionManager
坛子里有篇帖子已经详细论述了这种整合方案 http://www.iteye.com/topic/11063?page=2
------------------------------------------------------
Hibernate与JDBC(iBATIS) 都使用DataSourceTransactionManager又可不可以呢?
普遍的看法是 NO! 认为DataSourceTransactionManager根本就不处理Hibernate的session,事务当然无法实现。。。
但事实是否真的如此呢?
答案同样是 NO! http://forum.springframework.org/archive/index.php/t-9878.html
Juergen Hoeller:
Just if you proxy your JDBC DataSource with a TransactionAwareDataSourceProxy (available since Spring 1.1 RC1) and pass that proxy to your LocalSessionFactoryBean, you could use DataSourceTransactionManager in combination with Hibernate.
也就是说配置 sessionFactory 的 useTransactionAwareDataSource 为 true
Hibernate与JDBC(iBATIS) 都使用 DataSourceTransactionManager 同样可以保证事务
原理就是保证了 connection 的唯一性。
Hibernate 使用 HibernateTransactionManager 、JDBC(iBATIS) 使用 DataSourceTransactionManager
当需要将它们整合到一个事务中的时候
普通的做法是配置统一的DataSource, Hibernate与JDBC(iBATIS) 都使用HibernateTransactionManager
坛子里有篇帖子已经详细论述了这种整合方案 http://www.iteye.com/topic/11063?page=2
------------------------------------------------------
Hibernate与JDBC(iBATIS) 都使用DataSourceTransactionManager又可不可以呢?
普遍的看法是 NO! 认为DataSourceTransactionManager根本就不处理Hibernate的session,事务当然无法实现。。。
但事实是否真的如此呢?
答案同样是 NO! http://forum.springframework.org/archive/index.php/t-9878.html
Juergen Hoeller:
Just if you proxy your JDBC DataSource with a TransactionAwareDataSourceProxy (available since Spring 1.1 RC1) and pass that proxy to your LocalSessionFactoryBean, you could use DataSourceTransactionManager in combination with Hibernate.
也就是说配置 sessionFactory 的 useTransactionAwareDataSource 为 true
Hibernate与JDBC(iBATIS) 都使用 DataSourceTransactionManager 同样可以保证事务
原理就是保证了 connection 的唯一性。
相关文章推荐
- poj1258 Agri-Net 最小生成树
- 系统管理:查看cpu、内存、磁盘、I/O、负载、性能状态
- 每天一个linux命令(19):find 命令概览
- Freemarker输出$和html标签等特殊符号
- IPA 包不经过APP Store直接发布到网站供用户下载安装
- 大数据架构及流处理架构
- xcode模拟器的安装路径
- 膝盖中了一箭之手术篇
- 编写Windows Service 备忘
- AndroidAnnotations快速开发框架
- Serializable:自定义序列化
- CentOS 安装Python3.4.0
- asktom的含义maxloghistory
- 画财经:台湾股市泡沫是如何破灭的
- C#获取目录的几种方法
- ArcGIS相交处理
- Linux中断(interrupt)子系统之一:中断系统基本原理
- 什么是IOMMU
- 苹果APP被Rejected
- [Selenium] 实例二:web自动化测试