Grails事务注释

时间:2014-08-26 20:22:44

标签: grails transactions

如何回滚在grails中使用@Transaction注释的控制器/动作?

我保存了两个对象,如果有任何错误就想回滚。

由于

1 个答案:

答案 0 :(得分:0)

您有两种选择。保留注释,然后抛出RuntimeException@Transactional的默认行为是在遇到RuntimeException时回滚当前事务。由于显而易见的原因,这不是一个很好的选择。

另一方面,如果遇到错误,您可以从相关操作中抛出已检查的异常。然而,这需要对注释稍作修改:

@Transactional(rollbackFor = Exception.class)

上面的方法有点笨拙,所以你可能想要使用你打算抛出的特定Exception类。例如:

@Transactional(rollbackFor = IOException.class)