更新多表配置事务采取事务下沉的方式

1、dao层代码

1
2
3
4
5
6
7
8
// 公司dao
public interface ICompanyDao {
       int updateCompany(UserDTO user);
}
// 用户dao
public interface IUserDao {
       int updateUser(UserDTO user);
}

2、事务层代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public interface TransactionalManage {
 
    boolean updateCompanyPeople(UserDTO user);
}
 
@Service("transactionalManage")
public class TransactionalManageImpl implements TransactionalManage{
     
   @Resource
    private ICompanyDao companyDao;
 
    @Resource
    private IUserDao userDao;
     
    @Override
    @Transactional
    public boolean updateCompanyPeople(UserDTO user) {
        int row = companyDao.updateCompany(user);
        if (row <= 0) {
            return false;
        }
        row = userDao.updateUser(user);
        if (row <= 0) {
            throw new BusinessException("updateCompanyPeople:更新失败。");
        }
        return true;
    }
}

3、service层代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public interface ICompanyPeopleService {
 
    boolean updateCompanyPeople(UserDTO user);
 
}
 
@Service("companyPeopleService")
public class CompanyPeopleServiceImpl implements ICompanyPeopleService { 
 
private static final Logger LOGGER = LoggerFactory.getLogger(CompanyPeopleServiceImpl.class);
 
  @Resource
    private TransactionalManage transactionalManage;
     
    @Override
    public boolean updateCompanyPeople(UserDTO user) {
        boolean isSuccess = false;
        try {
            isSuccess = transactionalManage.updateCompanyPeople(user);
        } catch (BusinessException e) {
            LOGGER.error("updateCompanyPeople:数据更新失败。", e);
        }
        return isSuccess;
    }
}

  

  

  

  

posted @   祎丫丫  阅读(341)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示