ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Query Methods 란 무엇일까
    spring/스프링 입문 주차 2024. 1. 25. 09:47

    Query Methods

    - Spring Data JPA에서는 메서드 이름으로 SQL을 생성할 수 있는 Query Methods 기능을 제공한다.
    - JpaRepository 인터페이스에서 해당 인터페이스와 매핑되어있는 테이블에 요청하고자 하는
     SQL을 메서드 이름을 사용하여 선언할 수 있다.

    List<Memo> findAllByOrderByModifiedAtDesc();


    - 이런 정해진 규칙으로 메서드 이름을 선언하기만 하면, SimpleJpaRepository 클래스가 생성될 때
     위처럼 직접 선언한 JpaRepository 인터페이스의 모든 메서드를 자동으로 구현해준다.
     - 따라서 우리는 인터페이스에 필요한 SQL에 해당하는 메서드 이름 패턴으로 메서드를 선언하기만 하면
      따로 구현하지 않아도 사용할 수 있다.
    - findAllByOrderByModifiedAtDesc(); 해당 메서드 이름은 Memo 테이블에서 ModifiedAt 즉, 
     수정 시간을 기준으로 전체 데이터를 내림차순으로 가져오는 SQL을 실행하는 메서들르 생성할 수 있다.

    List<Memo> findAllByUsername(String username);


    - 이렇게 Query Method를 선언했을 경우 ByUsername에 값을 전달해줘야 하기 때문에 파라미터에
     해당 값의 타입과 변수명을 선언해준다.
    - 즉, Query Methods는 메서드의 파라미터를 통해 SQL에 필요한 값을 동적으로 받아 처리할 수 있다.

     


     

    DB의 기능은 CRUD 중 R이 90% 이상의 리소스를 차지한다고 한다.

    때문에 SELECT 문을 얼마나 효율적으로 사용하는가가 가장 중요하다고 할 수 있는데,

    이러한 측면에서 QueryMethod는 단점이 부각된다.

     

    때문에 실무에선 복수의 필터를 사용해도 가독성이 좋고 타입 안정성이 뛰어난

    QueryDSL 이 보편적으로 사용된다고 한다.

    하지만 간단한 Query 인 경우에는 QueryMethod 또한 좋은 선택지 이며,

    때로는 이 둘을 혼합 사용하기도 한다.

    'spring > 스프링 입문 주차' 카테고리의 다른 글

    SpringBoot의 JPA  (1) 2024.01.25
    엔티티의 상태  (1) 2024.01.25
    영속성 컨텍스트의 기능  (0) 2024.01.25
    JPA란 무엇일까  (0) 2024.01.23
    제어의 역전, ApplicationContext  (2) 2024.01.22
Designed by Tistory.