본문 바로가기
Programming Language/Spring

@Transaction(readOnly = true)

by happy coding! 2022. 11. 21.
반응형

스프링 프레임워크에서 @Transaction(readOnly = true)로 트랜잭션을 읽기 전용 모드로 설정할 수 있다.


@Transaction(readOnly = true)

트랜잭션에 readOnly = true 옵션을 주면 스프링 프레임워크가 하이버네이트 세션 플러시 모드를 MANUAL로 설정한다.
이렇게 하면 강제로 플러시를 호출하지 않는 한 플러시가 일어나지 않는다.
따라서 트랜잭션을 커밋하더라도 영속성 컨텍스트가 플러시 되지 않아 엔티티의 등록, 수정, 삭제가 동작하지 않고 또한 읽기 전용으로 영속성 컨텍스트는 변경 감지를 위한 스냅샷을 보관하지 않으므로 성능이 향상된다.

즉 엔티티를 읽기 전용으로 조회하면 변경 감지를 위한 스냅샷을 유지하지 않아도 되고 영속성 컨텍스트를 플러시 하지 않아도 돼 성능을 최적화할 수 있다.

반응형

댓글