반응형
스프링 프레임워크에서 @Transaction(readOnly = true)로 트랜잭션을 읽기 전용 모드로 설정할 수 있다.
@Transaction(readOnly = true)
트랜잭션에 readOnly = true 옵션을 주면 스프링 프레임워크가 하이버네이트 세션 플러시 모드를 MANUAL
로 설정한다.
이렇게 하면 강제로 플러시를 호출하지 않는 한 플러시가 일어나지 않는다.
따라서 트랜잭션을 커밋하더라도 영속성 컨텍스트가 플러시 되지 않아 엔티티의 등록
, 수정
, 삭제
가 동작하지 않고 또한 읽기 전용으로 영속성 컨텍스트는 변경 감지를 위한 스냅샷을 보관하지 않으므로 성능이 향상된다.
즉 엔티티를 읽기 전용으로 조회하면 변경 감지를 위한 스냅샷을 유지하지 않아도 되고 영속성 컨텍스트를 플러시 하지 않아도 돼 성능을 최적화할 수 있다.
반응형
'Programming Language > Spring' 카테고리의 다른 글
Microservice와 Spring Cloud 소개 (0) | 2023.05.05 |
---|---|
[Spring In Action] 11. 리액티브 API 개발하기 (0) | 2023.03.24 |
[Spring] 스프링 트랜잭션 (0) | 2022.09.30 |
[Spring] @Bean vs @Component (0) | 2022.09.28 |
[Spring] 스프링 빈(Bean) (0) | 2022.05.31 |
댓글