@ Transactional

danbi lee·2023년 7월 17일

공부하고 더 채워넣기!

트랜잭션

작업 처리 중 오류가 발생하면 모든 작업을 롤백!
일련의 작업들을 묶어서 하나의 단위로 처리하고 싶을때 사용.

트랜잭션 사용방법

트랜잭션이 필요한 서비스 클래스 or 메서드에 @Transactional 어노테이션을 달아주기

읽기 전용 쿼리의 성능 최적화

@Transactional(readOnly=true);

조회만 하는 경우에 읽기 전용으로 엔티티를 조회하면 메모리 사용량 최적화 가능

  • 해당 트랜잭션을 이용할 경우 SELECT 문에 대해서만 기능을 지원하며, Transaction ID 설정에 대한 오버헤드를 해결할 수 있다. Read Only 트랜잭션에 대해서는 ID가 부여되지 않는다.
  • 별도의 스냅샷을 통해 데이터 일관성을 보장한다.

🤔 클래스와 메서드 둘 다 @Transactional이 붙어있다면?

메서드 레벨의 트랜잭션 우선 적용

주의점

  1. id는 롤백되지 않는다.
    auto increment 옵션은 트랜잭션 범위 밖에서 동작하기 때문

참고:
https://tecoble.techcourse.co.kr/post/2021-05-25-transactional/
https://willseungh0.tistory.com/75
https://lob-dev.tistory.com/entry/DBMS-%EB%B3%84-Transaction-Read-Only%EC%97%90-%EB%8C%80%ED%95%9C-%EB%8F%99%EC%9E%91-%EB%B0%A9%EC%8B%9D-1

profile
계속해서 보완중

0개의 댓글