Spring Data Jpa 구현체 나머지 기능2

신재원·2023년 3월 10일
0

Spring Data Jpa

목록 보기
13/13
  • 실무에서는 사용하기 애매한 기술들이다
    • 하지만 알고있으면 좋다.

Query By Example

  • 예시
    ( Inner Join은 가능하지만 Outer Join (Left Join) 이 해결이 안된다.)
    (사용하기 애매한 기술)
  • 장점

    • 동적 쿼리를 편리하게 처리
    • 도메인 객체를 그대로 사용한다
    • 데이터 저장소를 RDB에서 NOSQL로 변경해도 코드 변경이 없게 추상화 되어있다.
  • 정리

    • LEFT 조인이 안된다.
    • 실무에서는 QueryDSL을 사용해야한다.

Projections

실무에서 종종 도움될 상황이 있다.

  • 엔티티 대신에 DTO를 편리하게 조회할 때 사용
    • 전체 엔티티가 아니라 만약 하나의 회원 이름만 조회하고 싶을 경우
  • 정리
    • 실무의 복잡한 쿼리를 해결하기에는 한계가 있다.
    • 실무에서는 단순할때만 사용하고, 조금만 복잡해지면 QueryDSL을 사용해야한다.

네이티브 쿼리

  • 가급적 네이티브 쿼리는 사용하지 않는게 좋음, 정말 어쩔수 없을때 사용
    • 최근에 나온 궁극의 방법 -> 스프링 데이터 Projections 활용
  • 예시
    (지정한 쿼리가 그대로 로그에 찍힌다.)

    (제약 사항이 많이 있다.
    ex : Sort 파라미터를 통한 정렬이 정상 동작하지 않을수있다. 반환타입이 지원이 많이 안된다, 동적 쿼리가 불가능)
  • 정리
    : 네이티브 SQL을 DTO로 조회할 때는 JdbcTemplate or myBatis를 권장한다.

0개의 댓글