更新多表配置事务采取事务下沉的方式
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;
    }
}
                    
                
                
            
        
浙公网安备 33010602011771号