728x90
변경감지를 위해서는 원본과 현재의 값을 어쩔 수 없이 둘 다 가지고 있어야 합니다. 어떤 부분이 변경되었는지 파악할 수 있어야하니까요. 정말 조회에만 영향이 있는 쿼리라면 별도의 MemberReadOnlyRepository를 분리해서 읽기 전용 조회를 구성할 수도 있습니다. 하지만 쿼리 힌트보다는 1차 캐시를 우선 적용해서 DB로의 쿼리 자체를 줄이는 것을 먼저 적용하는게 우선입니다. redis와 같은 별도의 구성 없이 쿼리힌트만으로 최적화가 될 수 있는지는 성능 테스트를 진행해봐야 합니다.
@Repository
public interface MemberJpaRepository extends JpaRepository<Member, Long> {
@QueryHints(value = @QueryHint(name = "org.hibernate.readOnly", value = "true"))
List<Member> findAll();
}
728x90
'DEV > Spring Data JPA' 카테고리의 다른 글
Entity의 Id를 직접 지정할 때 주의사항 (persist vs merge) (0) | 2023.09.27 |
---|---|
JpaRepository를 custom해서 사용하는 방법 (0) | 2023.09.24 |
@EntityGraph로 fetch join 쉽게 쓰기 (0) | 2023.09.24 |
Update 쿼리를 호출할 때 주의사항 2가지 (0) | 2023.09.24 |
Page<Entity>를 API의 응답으로 리턴하는 방법 (0) | 2023.09.24 |