更新多表配置事務採起事務下沉的方式

一、dao層代碼java

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

二、事務層代碼ide

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

三、service層代碼blog

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;
    }
}
相關文章
相關標籤/搜索