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

1、dao层代码

 // 公司dao
 public interface ICompanyDao {
 		int updateCompany(UserDTO user);
 }
 // 用户dao
 public interface IUserDao {
 		int updateUser(UserDTO user);
 }

2、事务层代码

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层代码

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

  

  

  

  

原文地址:https://www.cnblogs.com/yiyibinbin/p/9473065.html