我正在使用多租户DB的Grails 3应用程序。可以理解的是,对于连接池性能的原因,对多租户数据库的任何查询都需要处于事务中。我没有链接,但Graeme Rocher在SO上的某个地方将其概述。Grails withTransaction()和事务服务方法之间的区别
所以,当我做了它工作得很好:
MyDomainClass.withTransaction { status ->
doStuffHere();
}
,但是当我动议到服务方法
@Transactional
class MyService {
doStuffHere() {
}
}
该方法将抛出一个“无会话找到”错误,因为它会如果我没有使用上面的withTransaction()方法。
有人知道为什么区别?有什么我应该在服务上设置?在上面的服务的doStuffHere()方法中使用withTransaction()似乎是多余的。
你可以在这里找到答案http://docs.grails.org/2.3.11/guide/services.html – Dasma