改变 Grails 的缺省事务行为
Grails通过Service让我们不用进行任何配置就享受到了声明式事务这一特性。可是,这也让我们不得不接受它预先设置的事务行 为:PROPAGATION_REQUIRED。要是我想使用其它的事务行为该如何做呢?没关系,使用@Transactional进行配置就行了。
废话少说,直奔正题。下例就展示了自定义Grails事务行为的做法:
Domain1Service,其中的saveDomain1负责保存Domain1,该方法的行为是始终都启动一个新事务。在这个方法的末端抛出了一个RuntimeException,这将让Grails回滚事务。这是为了证明咱们的配置确实生效了。
package cases import org.springframework.transaction.annotation.* class Domain1Service { def domain1Service ... def test(){ println this.class println domain1Service.class this == domain1Service } }