更新多表配置事务采取事务下沉的方式
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; } }