2013-03-25 109 views
0

在几个领域类中,我有一个属性createdBy与类User。如果我删除了一个用户,我想要修改所有域对象以使用此属性的默认用户。Grails中的交易

我想通过交易来做到这一点(改变所有或无所事事)。 我如何在grails交易中做到这一点?

+1

您的意思是,所有表中的“createdBy”都是外键,当用户被删除时,您想要将该值更改为默认用户?这不是一个好主意,因为它可能导致多个表和行更新,更好的方法是将用户标记为已删除或不创建字段FK,并且当您删除用户时,将他放入一个遗留用户表供将来参考.. – 2013-03-25 12:37:02

+1

我通常会创建一个服务并将其设置为事务性的,此链接将解释所有这些内容:http://grails.org/doc/latest/guide/services.html – marko 2013-03-25 14:00:35

回答

1

作为-marko-已经评论过,您可以通过实施服务来实现这一点。另一种方法是使用'beforeDelete'事件。使用beforeDelete时,确保使用另一个hibernate Session。

User.withNewSession { 
    // your code here 
}