JPA Hint이 뭘까?
JPA 쿼리 힌트이다. SQL 힌트가 아닌 JPA 구현체에게 제공되는 힌트이다.
기능은?
- readOnly를 적용하여 성능 최적화를 할 수 있다.
- 하지만, 진짜 진짜 중요한 트래픽이 많은 곳에서만 사용하자. 성능테스트를 해보고 중요할 때에만 사용하자!
- 다음과 같은 예시에서, member를 찾은 이후 update를 하더라도 쿼리가 실행되지 않는다. 또한, 변경감지가 발생하지 않는다(readOnly)
- 예상하지 못한 버그가 발생할 수 있다.
@QueryHints(value = @QueryHint(name = "org.hibernate.readOnly", value ="true"))
Member findReadOnlyByUsername(String username);
쿼리 힌트를 Page에도 추가해보자!
@QueryHints(value = { @QueryHint(name = "org.hibernate.readOnly", value = "true")},
forCounting = true)Page<Member> findByUsername(String name, Pagable pageable);
결론
성능테스트를 해보고 중요할 때에만 사용하자!
'공부 > Spring' 카테고리의 다른 글
스프링 데이터 JPA에서 Auditing을 적용해보자! (0) | 2022.08.25 |
---|---|
[스프링 데이터 JPA] 사용자 정의 레포지토리를 추가로 구현하는 방법을 알아보자 (0) | 2022.08.25 |
@EntityGraph을 통해 간편히 페치조인을 적용해보자 (0) | 2022.08.25 |
[스프링 데이터 JPA] 벌크성 수정 쿼리에 대해 알아보자 (0) | 2022.08.25 |
스프링 데이터 JPA에서 페이징과 정렬을 해보자 (0) | 2022.08.25 |
댓글