小编s3c*_*3t3的帖子

Grails域类beforeDelete不作为事务处理

我有一个用户域类,其中包含username,fullName,...等属性和UserRole关联类.

在我的域类中,我在beforeDelete方法上有以下代码

def beforeDelete() {
    UserRole.removeAll(this);
}
Run Code Online (Sandbox Code Playgroud)

在UserRole类中,我有像这样的removeAll方法:

static void removeAll(User user) {
    executeUpdate 'DELETE FROM UserRole WHERE user=:user', [user: user]
}
Run Code Online (Sandbox Code Playgroud)

对delete方法的调用是在我的UserService类中完成的

def delete(User userInstance){
   userInstance.delete()
}
Run Code Online (Sandbox Code Playgroud)

我期待的是:当删除失败时,应该执行回滚,但即使删除失败,也会删除所有UserRole关联.

我错过了什么吗?beforeDelete方法不包含在与userService.delete(User userInstance)方法相同的事务中?

或者我应该将UserRole.removeAll()调用移动到UserService类?

Grails版本:2.3.11

休眠:3.6.10.16

grails grails-orm

2
推荐指数
1
解决办法
754
查看次数

标签 统计

grails ×1

grails-orm ×1