在很多业务中,我们都必须对一些操作加上事务,即保证的数据的原子性,即同一操作中所对各种数据的增删改查操作,要么全是成功,要么全部失败。Grails通过Service让我们不用进行任何配置就享受到了声明式事务这一特性(PROPAGATION_REQUIRED),如果想要使用其他的事务行为,请在服务类前用
@Transactional(propagation = Propagation.REQUIRES_NEW)
进行修改就行了
这里值得注意的是,只要当service抛出异常的时候,事务才会启动,失败时才能自动回滚,即如果你在service里面捕获了异常,那个try,catch里面的代码并不能享受事务,即不能自动回滚。
本文出自 “技术随笔” 博客,请务必保留此出处http://6367966.blog.51cto.com/6357966/1579441
原文地址:http://6367966.blog.51cto.com/6357966/1579441