使用JdbcTemplate和多个数据源的交易

时间:2018-06-22 12:40:42

标签: spring-jdbc spring-transactions

我已经阅读了很多,但是还没有找到简单的方法。

我使用的是Spring JdbcTemplate,有两个数据源和模板,并希望按照以下伪代码提交对它们的更改:

JdbcTemplate tpl1
JdbcTemplate tpl2
try {
  tpl1.doStuff()
  tpl2.doStuff()
  tpl1.commit()
  tpl2.commit()
} catch (Exception ex) {
  tpl1.rollback()
  tpl2.rollback()
}

除了JdbcTemplate不包含commitrollback以外,因为他们希望您使用Spring内置的事务处理。

我不想使用2PC / JTA / XA / Atomikos的复杂性,而且我的数据库也不支持。

无论如何我都看不到要从JdbcTemplate中断开连接,所以我不能不使用Spring @Transactional的任何支持而像上面那样手动进行操作。

我尝试使用@Transactional并依次编写提交给每个单独的CompositePlatformTranactionManager的{​​{1}},但是Spring线程作用域中的内容DatasourceTransactionManager失败了。 / p>

除了根本不使用JdbcTemplate而是仅使用低级别的JDBC操作(这不是一个选择)之外,还可以怎么做?

0 个答案:

没有答案