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 周銳 閱讀(1703) 評論(0)  編輯  收藏 所屬分類: Groovy&Grails
          主站蜘蛛池模板: 沾益县| 开江县| 翼城县| 延安市| 靖州| 井研县| 大石桥市| 金塔县| 柳林县| 鄢陵县| 平远县| 民和| 松溪县| 琼海市| 北京市| 绥江县| 海阳市| 荥阳市| 鄂托克前旗| 芦溪县| 武平县| 焉耆| 南岸区| 雷山县| 铜山县| 灵山县| 固镇县| 兴隆县| 南充市| 英吉沙县| 开阳县| 桦南县| 灌阳县| 凤城市| 呼玛县| 穆棱市| 天峨县| 灵宝市| 厦门市| 隆安县| 屏南县|