트랜잭션은 DB쪽에서 사용되는 용어로, 영어 단어 그 자체는 거래 라는 의미를 가지고 있다.
DB에서의 트랙잭션은 하나의 DB 작업이 수행되고, 그 값이 저장되기까지의 과정을 말한다.
이러한 개념의 도입으로 모든 작업이 성공적으로 완료되어야 작업 묶음의 결과를 적용하고, 오류발생 시 트랜잭션 전으로 되돌릴 수 있다.
DB와 관련된, 트랙잭션 필요 서비스에 전부 @Transaction을 달아주면 해결된다.
이 어노테이션이 붙은 메서드는 (클래스에 붙이면 클래스 전체 메서드에 적용) begin, end가 자동으로 지원되고, 예외가 발생하면 자동으로 rollback을 적용한다.
이러한 방식을 일반적으로 선언된 트랙잭션이라고 부르며, 적용범위내에서는 트랙잭션기능이 포함된 프록시객체가 생겨서 작동한다.
일관성없는 데이터 허용 수준을 정한다.
트랜잭션도중 다른 트랜잭션 호출 시 처리방식을 지정한다.
특정예외에서는 롤백하지 않는다.
특정예외에서 롤백한다.
지정시간안에 메서드 수행이 실패하면 롤백한다.
읽기전용 트랙잭션이 수행된다.