728x90
728x90
@Transactional(readOnly=true)는 스프링 AOP 기반의 어노테이션으로, 해당 어노테이션이 붙은 메서드가 트랜잭션을 시작하고 종료할 때 읽기 전용 모드로 동작하도록 지정하는 것입니다.
읽기 전용 모드는 데이터베이스에 대한 변경 작업을 수행하지 않고, 영속성 컨텍스트를 플러시 하지 않습니다.
이렇게 하면 성능상의 이점과 데이터 일관성을 얻을 수 있습니다.
예를 들어, JPA를 사용할 경우, 변경 감지 작업을 수행하지 않고, 엔티티와 스냅샷을 비교하는 과정을 생략할 수 있습니다.
또한 데이터베이스 드라이버가 지원한다면, DB에서도 읽기 전용 쿼리를 최적화할 수 있습니다.
@Transactional(readOnly=true)는 데이터의 변경이 없는 읽기 전용 메서드에 사용하는 것이 좋습니다. 만약 변경 작업을 수행하는 메서드에 사용하면, 변경은 무시되거나 예외가 발생할 수 있습니다.
728x90
300x250
'Spring' 카테고리의 다른 글
[Spring; 스프링] RequestRejectedException - Spring Security (0) | 2023.10.18 |
---|---|
[Spring; 스프링] Spring Security (0) | 2023.10.05 |
[Spring; 스프링] mappedBy 연관관계 (0) | 2023.10.04 |
[Spring; 스프링] SpringBoot JPA Entity (0) | 2023.10.04 |
[Spring; 스프링] STS 3 ( Spring Tool Suite ) 이전 버전 다운로드 (0) | 2022.11.04 |