`
carge
  • 浏览: 50225 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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);

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics