Grails'withTransaction'与备用dataSource

时间:2012-06-20 18:46:30

标签: spring grails gorm

试图找出如何使用grails中的备用dataSource打开事务。我有以下dataSources定义...

dataSource {
    dbCreate = "update"
    url = "jdbc:h2:mem:testDb;MVCC=TRUE"
}

dataSource_ALT {
   dbCreate = "update"
   url = "jdbc:h2:mem:altDb;MVCC=TRUE"
}

我可以使用默认的dataSource ...

执行此操作
Foo.withTransaction { status ->
    //...
}

但是当我尝试使用ALT dataSource时,我得到一个异常 - '没有配置transactionManager bean'...

Foo.ALT.withTransaction { status ->
   //...
}

有没有办法使用不同的dataSource启动事务?我已经做了一些挖掘并且找不到多少。

谢谢!

1 个答案:

答案 0 :(得分:0)

@Raphael你的建议确实有效。我能够进入下一步,通过分配事务管理器来实现事务处理。他们似乎被创造出来,只是没有附加。它们以Spring beans的名称存在,类似于transactionManager_ALT(在本例中)。不确定实际创建它们的原因,以及为什么它们没有附加到GormStaticApi。

即。你要这样做:

Foo["ALT"].transactionManager = transactionManager_ALT

可能会尝试选择一个域类并分配所有不同的事务管理器,看看是否有效,然后在任何地方使用该域类来启动事务。