Hibernate与JDBC事物的混用
来源:互联网 发布:阿里云为什么要装linux 编辑:程序博客网 时间:2024/05/16 09:08
最近摸索了一下Hibernate与JDBC(iBATIS)事务整合问题,算是有点收获,写出来和大家讨论一下吧。。。
一般大家都会使用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与JDBC事物的混用
- jdbc的事物管理与ThreadLocale
- JDBC数据库连接与事物
- JDBC的事物管理
- JDBC的事物处理
- JDBC事物的使用
- 33.1 JDBC技术与事物
- 事物<一> JDBC事物的理解
- 使用反射的方法实现JDBC数据库连接与事物
- hibernate 用spring实现jdbc事物管理
- Hibernate的事物机制
- wxWidgets与MFC的混用
- Hibernate与JDBC的区别
- hibernate与jdbc的区别
- Hibernate与JDBC的优缺点
- JDBC与hibernate的区别
- JDBC与Hibernate的区别
- hibernate与jdbc的比较
- 系统何时触发onSaveInstanceState和onRestoreInstanceState
- TCP速率与窗口,带宽,RTT之间的关
- Android recovery 模式 中英文对照
- 怀孕过程中如何轻松跟宝宝对话?
- centos 6 yum 源设置
- Hibernate与JDBC事物的混用
- Eclipse安装svn插件
- javascript如何读取Json数据结构节点的值?
- bib 文件
- 观点:Scala会成为新的EJB 2吗?
- 安卓Android Recovery具体工作原理
- JAVA基础:快速排序 、冒泡排序
- i2c总线 && driver
- asp.net生成验证码