<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0
    在Grails中Service層默認就是支持事務的,事務傳播級別默認是PROPAGATION_REQUIRED.  當然你也可以設置transactional = false.
    如果transactional 設置為true, 則在Service層如何方法內部拋出RuntimeException類型異常, 所有操作將會回滾.

    class UserService {

        boolean transactional = true

        public boolean register(User user, UserInfo userInfo) throws RuntimeException {
            if (user.save()) {
                userInfo.user = user
                if (userInfo.save()) {
                    return true
                } else {
                    throw new RuntimeException ('ServiceException: UserService.register()...');
                }
            } else {
                throw new RuntimeException ('ServiceException: UserService.register()...');
            }
        }
    }

    這樣不管哪個保存失敗, 數據都將會回滾!
    posted on 2008-07-21 21:29 周銳 閱讀(1700) 評論(0)  編輯  收藏 所屬分類: Groovy&Grails
    主站蜘蛛池模板: 成年女性特黄午夜视频免费看| 91精品国产免费久久国语麻豆| 大学生一级特黄的免费大片视频| 亚洲成人在线免费观看| 在线观看的免费网站无遮挡| 亚洲欧洲在线观看| 91精品国产免费久久国语蜜臀 | 久久久精品免费视频| 久久乐国产精品亚洲综合| 一级**爱片免费视频| 亚洲精品国产日韩无码AV永久免费网 | 中国内地毛片免费高清| 国产国拍亚洲精品福利| 99久久精品毛片免费播放| 国产AV无码专区亚洲AV男同| 久久国产精品免费观看| 亚洲剧场午夜在线观看| 成人免费一区二区三区在线观看| 亚洲色无码国产精品网站可下载| 全免费a级毛片免费**视频| 精品亚洲成a人在线观看| 亚洲第一视频在线观看免费| 中文字幕无线码中文字幕免费| 亚洲AV人人澡人人爽人人夜夜| 最近免费中文字幕高清大全| 亚洲中文字幕乱码熟女在线| 免费A级毛片无码A| 久久免费观看国产精品| 精品亚洲456在线播放| 亚洲精品无码专区2| 午夜精品一区二区三区免费视频| 亚洲Av高清一区二区三区| 免费人成年激情视频在线观看| 99久久免费国产特黄| 亚洲mv国产精品mv日本mv| 免费成人午夜视频| 最近免费视频中文字幕大全| 亚洲综合色婷婷在线观看| 亚洲人成网亚洲欧洲无码久久| 免费看片在线观看| 2022免费国产精品福利在线|