我正在使用多租戶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