Grails 中防止try catch导致 Sevice 事务不生效

阅读更多

今天做项目时,在一个service中写入如下代码,发现Location保存失败,但是Business保存成功了,事务没有生效。

 

 

try{
        Business business = new Business(
                creator : user,
                name : 'Operator Special Business',
        ).save(flush: true);

        Location location = new Location(
                business : business,
                name : 'Operator Special Location',
        ).save(flush: true);
}catch(Exception e){

}

 

 

经分析,是由于异常被扑捉,没有抛出,所以Grails没有执行事务。修改为如下代码后,事务生效:

 

            Business business = new Business(
                    creator : user,
                    name : 'Operator Special Business',
            ).save(flush: true);

            Location location = new Location(
                    business : business,
                    name : 'Operator Special Location',
            ).save(flush: true);

 

 

 

 

 

你可能感兴趣的:(Grails 中防止try catch导致 Sevice 事务不生效)