@Transactional

강한친구·2022년 7월 20일
0

JPA

목록 보기
15/27

Transcaction

트랜잭션은 DB쪽에서 사용되는 용어로, 영어 단어 그 자체는 거래 라는 의미를 가지고 있다.

DB에서의 트랙잭션은 하나의 DB 작업이 수행되고, 그 값이 저장되기까지의 과정을 말한다.

참고자료

이러한 개념의 도입으로 모든 작업이 성공적으로 완료되어야 작업 묶음의 결과를 적용하고, 오류발생 시 트랜잭션 전으로 되돌릴 수 있다.

Annotation

DB와 관련된, 트랙잭션 필요 서비스에 전부 @Transaction을 달아주면 해결된다.

이 어노테이션이 붙은 메서드는 (클래스에 붙이면 클래스 전체 메서드에 적용) begin, end가 자동으로 지원되고, 예외가 발생하면 자동으로 rollback을 적용한다.

이러한 방식을 일반적으로 선언된 트랙잭션이라고 부르며, 적용범위내에서는 트랙잭션기능이 포함된 프록시객체가 생겨서 작동한다.

트랜잭션의 옵션

공식문서를 보자
이 글은 도움이 된다

isolation

일관성없는 데이터 허용 수준을 정한다.

propagation

트랜잭션도중 다른 트랜잭션 호출 시 처리방식을 지정한다.

noRollbackFor

특정예외에서는 롤백하지 않는다.

rollbackFor

특정예외에서 롤백한다.

timeout

지정시간안에 메서드 수행이 실패하면 롤백한다.

readOnly

읽기전용 트랙잭션이 수행된다.

0개의 댓글