【发布时间】:2015-03-04 01:31:04
【问题描述】:
我有一个用户域类,其中包含用户名、全名、...等属性和一个 UserRole 关联类。
在我的域类中,我在 beforeDelete 方法上有以下代码
def beforeDelete() {
UserRole.removeAll(this);
}
在 UserRole 类中,我有这样的 removeAll 方法:
static void removeAll(User user) {
executeUpdate 'DELETE FROM UserRole WHERE user=:user', [user: user]
}
删除方法的调用是在我的 UserService 类中完成的
def delete(User userInstance){
userInstance.delete()
}
我的期望是:当删除失败时,应该执行回滚,但即使删除失败,所有 UserRole 关联也会被删除。
我错过了什么吗? beforeDelete 方法没有和 userService.delete(User userInstance) 方法封装在同一个事务中?
或者我应该将 UserRole.removeAll() 调用移至 UserService 类吗?
Grails 版本:2.3.11
休眠:3.6.10.16
【问题讨论】:
-
尝试将调用移动到服务(removeAll)并调用它,看看是否有帮助
标签: grails grails-orm