@Transactional
2022.01.21
트랜젝션(Transaction) : 번역하면 '거래'
모든 작업이 성공적으로 완료하고, 작업의 묶음을 결과로 적용해야 할 때,
오류가 발생하면 이전의 작업이 성공적이었더라도, 없던 일처럼 되돌리는 것이 트랜젝션의 개념
@Transactional : 이 어노테이션이 붙은 메소드는 메소드가 포함하고 있는 작업 중 하나라도 실패할 경우 전체 작업을 취소
주의할 점 :
RollBack이 되지 않는 경우,
1. WebEnvironment의 RANDOM_PORT, DEFINED_PORT 를 사용하면
실제 테스트 서버는 별도의 스레드에서 테스트를 수행하기 때문에 트랜젝션이 롤백 되지 않는다.
2. Insert 작업시 Auto_Increment옵션을 적용 하여 id(식별자)의 값을 자동으로 증가하도록 옵션을 적용 할 경우,
insert작업으로 인해 증가한 id의 값은 트랜잭션이 롤백되어도 감소하지 않는다.
(Auto_Increment 옵션은 트랜잭션 밖에서 동작)
댓글을 작성해보세요.