【发布时间】:2013-08-02 09:28:25
【问题描述】:
以下动作有什么区别?
def someAction() {
User.withTransaction { ... }
}
和
def someAction() {
User.withNewTransaction { ... }
}
什么时候用什么?
当一个 grails 操作只包含一个事务块时。在这种情况下,我猜 withTransaction 和 withNewTransaction 是相同的,因为每个操作都有自己的事务。这是真的?
【问题讨论】:
-
我想第一个变体如果存在则参与现有事务,如果不存在则启动一个事务,而第二个变体总是启动一个新事务,无论是否已经执行
-
我更新了我的问题。您如何看待问题 2?
-
我同意@cmbaxter,只是一个旁注:控制器应该尽可能简单,只处理请求。如果您需要处理事务,服务是一个更好的地方(它们已经是事务性的)。
标签: hibernate grails transactions grails-2.0