본문 바로가기
Java

Java) Spring Transaction Rollback 시키기 예제

by 유노파이 2021. 8. 20.

두 테이블의 행동이 똑같이 일어나야할때

 

서비스단에서 예외 발생시키기

- 업데이트는 에러가 발생해도 다음 코드로 진행 되어 마지막에 리턴값을 받아서 

  하나라도 에러 발생시 롤백 시키도록 활용하였다.

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

댓글