2017-09-05 11:48
@JFinal 谢谢,解决了,实际上是基础不牢固的问题,跨数据源事务概念没有。没说清楚问题,其实这里整个方法使用的是同一个数据源(虽然整个系统是多数据源的),所以直接将Db.tx改为Db.use(dataSourceName).tx()就可以实现事务了,同样也可以使用@Before(Tx.class)和@TxConfig(dataSourceName)的组合。
最开始我犯了一个错误就是,就是使用了上面的方法之后,想当然的以为默认数据库已经自动切换了,在方法里面直接使用Db.update,结果操作了主数据库的表。实际上方法里面也仍然要使用Db.use(dataSourceName).update/delete...use()来指定需要操作的数据源