@Transactional

트랜젝션(Transaction) : 번역하면 '거래' 

모든 작업이 성공적으로 완료하고, 작업의 묶음을 결과로 적용해야 할 때, 

오류가 발생하면 이전의 작업이 성공적이었더라도, 없던 일처럼 되돌리는 것이 트랜젝션의 개념

 

 

@Transactional : 이 어노테이션이 붙은 메소드는 메소드가 포함하고 있는 작업 중 하나라도 실패할 경우 전체 작업을 취소

 

주의할 점 : 

RollBack이 되지 않는 경우,

1. WebEnvironment의 RANDOM_PORT, DEFINED_PORT 를 사용하면

실제 테스트 서버는 별도의 스레드에서 테스트를 수행하기 때문에 트랜젝션이 롤백 되지 않는다.

 

2. Insert 작업시 Auto_Increment옵션을 적용 하여 id(식별자)의 값을 자동으로 증가하도록 옵션을 적용 할 경우,

insert작업으로 인해 증가한 id의 값은 트랜잭션이 롤백되어도 감소하지 않는다. 

(Auto_Increment 옵션은 트랜잭션 밖에서 동작) 

 

 

댓글을 작성해보세요.

채널톡 아이콘