본문 바로가기
Spring

@QueryHint 와 @Transaction readOnly 차이 / 비공개

by shulk 2024. 4. 8.

* @QueryHint

JPA Hint인 @QueryHint는 스냅샷을 사용하지 않으면서 당연히 스냅샷 사용안하니 더티체킹도 안한다.

 

* @Transaction readonly

@Transaction readonly는 flush를 안한다는거다. 그리고 현재 스프링 최신버전에서는 스냅샷 사용 안하니 그러므로 더티체킹을 안한다. (알아보니 옛날 버전은 스냅샵은 이용 한다는듯?)

 

따라서 이 두개는 읽기 전용에서는 성능 최적화를 얻을 수 있다. 근데 이 두개가 비슷해서 차이가 있나 알아봤는데 차이 없고 스프링 5.1버전 이후    @Transaction(readOnly=true)로 설정하면, @QueryHint의 readOnly까지 모두 동작 한다!

추가로 엔티티 조회가 아닌 바로 DTO로 조회할 때는 스냅샷이 안만들어져서 이경우에는 성능 이점이 없다!

 

참고

JPA HINT 와 트랜잭션 읽기전용 차이

트랜잭션 읽기전용 스냅샵

'Spring' 카테고리의 다른 글

Spring Security-JWT 사용시  (0) 2024.11.11
CORS 와 PreFlight  (0) 2024.10.11
Spring_5주차-(2)  (0) 2023.12.04
Spring_5주차-(1)  (0) 2023.11.28
Spring_4주차-(2)  (0) 2023.11.14