두 테이블의 행동이 똑같이 일어나야할때
서비스단에서 예외 발생시키기
- 업데이트는 에러가 발생해도 다음 코드로 진행 되어 마지막에 리턴값을 받아서
하나라도 에러 발생시 롤백 시키도록 활용하였다.
@Override
public int updateStatus(Map<String, String> option) {
int msg = 0;
try {
//(업데이트 실패시 0 , 성공시 1 반환)
// 첫번째 업데이트
int result = devDao.updateTest(option);
// 두번째 업데이트
int result1 = devDao.updateTest2(option);
// 둘중 하나에서 에러 발생시 강제로 에러발생시켜 롤백 시킴
if (result == 0 || result1 == 0) {
// msg = 0;
throw new Exception();
}else {
msg = 100;
}
}catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return msg;
}
댓글