hibernate 事务定制

公司自己写了一个框架来管理事务,因为需要处理和hibernate一起时的事务问题。通过阅读hibernate的资料和源码,找到了一下几个思路。

1、参考hibernate的jta事务托管方式,定制ConnectionProvider和TransactionFactory,在ConnectionProvider中提供我们的数据库连接,TransactionFactory中定制我们的事务提交。后来发觉我们的事务用spring管理,而公司的框架和spring之间间隙较大,不好配置事务切面。

第二个方案否决,OpenSessionInView是延迟关闭,不是延迟提交

2、参考openSessionInView的方式,hibernate的事务进行延迟处理,手动提交hibernate的事务,这样就可以将公司框架事务的提交和hibernate的提交放置再相同的时间,虽然可能有一场情况,但概率应该会降低。还要参考分布式事务的两段式提交。

相关推荐