Spring - @Transactional의 속성들 중 rollbackFor, noRollbackFor, timeout

김도형·2022년 10월 24일
0

rollbackFor

  • 지정된 예외가 발생하면, Tx을 rollback
  • RuntimeException과 Error는 자동 rollback
  • Exception 예외 발생 시, rollback 미발생하여 @Transactional(rollbackFor = Exception.class) 사용
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
    public void insertA1WithTx() throws Exception {
...    
	}

noRollbackFor

지정된 예외가 발생해도, Tx을 rollback 하지 않음

@Transactional(noRollbackFor = { ExceptionA.class, ExceptionB.class })
public void insertItem() {
  ...
}

timeout

  • 지정된 시간(초) 내에 Tx가 종료되지 않으면, Tx를 강제 종료
  • 사용하는 이유 자원을 한 사람이 오래쓰면 자원이 비효율적으로 배분되기 때문에 사용
@Transactional(timeout = 2)
profile
3년간 웹/앱, 자동제어 QA 🔜 개발자로 전향하여 현재 교육 회사에서 백엔드 개발자로 근무 중입니다.(LinkedIn : https://www.linkedin.com/in/dohyoung-kim-5ab09214b)

0개의 댓글

관련 채용 정보