【发布时间】:2012-06-22 23:29:28
【问题描述】:
试图弄清楚如何使用 grails 中的备用数据源打开事务。我定义了以下数据源...
dataSource {
dbCreate = "update"
url = "jdbc:h2:mem:testDb;MVCC=TRUE"
}
dataSource_ALT {
dbCreate = "update"
url = "jdbc:h2:mem:altDb;MVCC=TRUE"
}
我可以使用默认数据源来做到这一点...
Foo.withTransaction { status ->
//...
}
但是当我尝试使用 ALT 数据源执行此操作时,我得到一个异常 - '未配置 transactionManager bean'...
Foo.ALT.withTransaction { status ->
//...
}
有没有办法使用不同的数据源启动事务?我已经进行了一些挖掘,但没有找到太多。
谢谢!
【问题讨论】:
-
我没有尝试过,但如果它不受支持,在 grails 2 中添加多个数据源似乎是一个错误/遗漏的要求。您将不得不使用针对域使用
.withTransaction的解决方法只有一个数据源的对象。 -
不使用快捷键有用吗?
def sessionFactory_ALT def doStuff(){ def tx = sessionFactory_ALT.currentSession.beginTransaction() tx.commit() tx.rollback() etc... }
标签: spring grails grails-orm