将autoocommit从驱动程序移动到batis

时间:2016-02-20 11:34:05

标签: spring transactions mybatis

我的网络应用最初是为db2 / derby制作的,并且依赖于默认的autocommit = true。

修改数据的Mybatis Mapper方法有时在一个事务中使用分组 TransactionTemplate.execute(),但大多数非DML方法按原样执行。

我最近发现嵌套的SQL查询(<association>带有select属性)失败,因为关闭一个游标会关闭当前连接中的所有游标。

http://www-01.ibm.com/support/docview.wss?uid=swg21420760

所以我需要这些改变:

  • 在从池中借用连接时关闭驱动程序自动提交
  • 如果方法是DML方法且没有事务上下文,mybatis应该提交

问题是Spring中调用connection.setAutoCommit(false)的唯一地方是DataSourceTransactionManager.getTransaction()

如何使所有Mapper方法都是事务性的?

0 个答案:

没有答案