<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層默認(rèn)就是支持事務(wù)的,事務(wù)傳播級別默認(rèn)是PROPAGATION_REQUIRED.  當(dāng)然你也可以設(shè)置transactional = false.
    如果transactional 設(shè)置為true, 則在Service層如何方法內(nèi)部拋出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()...');
            }
        }
    }

    這樣不管哪個保存失敗, 數(shù)據(jù)都將會回滾!
    posted on 2008-07-21 21:29 周銳 閱讀(1706) 評論(0)  編輯  收藏 所屬分類: Groovy&Grails
    主站蜘蛛池模板: AV在线播放日韩亚洲欧| 久久亚洲精品中文字幕| 亚洲国产av一区二区三区| 久久精品亚洲一区二区| 亚洲国产精品无码第一区二区三区| 无码精品人妻一区二区三区免费| 亚洲一区二区三区免费视频| 亚洲 小说区 图片区 都市| 久久精品蜜芽亚洲国产AV| 国产精成人品日日拍夜夜免费| 成人免费视频国产| 亚洲精品福利在线观看| 一级毛片免费播放视频| 国产香蕉九九久久精品免费| 久久久久亚洲AV成人无码网站| 国产精品亚洲精品久久精品 | 四虎永久在线精品免费观看视频| 免费**毛片在线播放直播| 亚洲国产成人精品无码一区二区| 国产成人免费AV在线播放| 亚洲福利在线播放| a级毛片在线视频免费观看| 亚洲国产精品自产在线播放| 国产精品免费看久久久香蕉 | 在线视频精品免费| 亚洲不卡av不卡一区二区| 一区二区三区免费在线视频 | 亚洲精品国产免费| 最新中文字幕免费视频| 亚洲熟妇av一区| 四虎在线视频免费观看| 中文字幕乱码亚洲无线三区| 999久久久免费精品国产| 亚洲精品第一国产综合亚AV| 亚洲色婷婷综合开心网| 99在线免费观看视频| 亚洲AV无码一区二区二三区软件 | 日本免费大黄在线观看| 亚洲综合国产成人丁香五月激情| 在线永久看片免费的视频| 特黄特色大片免费|