Spring Data JPA의 QueryMethod
Spring Data JPA를 사용하면 복잡한 쿼리를 작성하지 않고도, 메소드 이름만으로 데이터 조회를 쉽게 할 수 있다.
이러한 기능을 제공하는 것이 바로 QueryMethod이다. QueryMethod는 메소드 이름을 분석하여 적절한 JPQL 쿼리를 생성한다.
개발을 하며 JPA Repository interface를 상속받아 사용을 한 적이 자주 있다.
하지만 SpringDataJpa의 기능은 제대로 써보지 못했다.
그중에 가장 충격적이었던 QueryMethod의 종류들을 작성해보려한다.
findByUsername(String username);
말 그대로 이름으로 객체를 찾는 쿼리이다. 이렇게 하나의 컬럼으로 찾는 것은 많이 해보았다.
예전에 JPA에 대해 잘 모를 때 학습하느라 까먹었는데, 이번에 다시 한번 정리를 시자해본다.
findByUsernameAndAgeGreaterThan(String username, int age);
이 메소드는 username과 age 필드를 조합하여 사용한다.
위 메서드는 username으로 검색하되, age 필드가 특정 값보다 큰 데이터만 조회한다.
findBy + Username + And + Greater + Than 이렇게 나뉜다.
사용 방법을 외우는 것보단 메뉴얼을 보고 사용해야한다.
뜻 그대로, greater 은 ~보다 큰이라는 뜻이므로 username으로 검색하되, age보다 큰 객체만 갖고온다는 뜻이다.
공식 문서 링크
Spring Data JPA의 QueryMethod에 대한 자세한 내용은 아래 링크에서 확인할 수 있다.
https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html
JPA Query Methods :: Spring Data JPA
As of Spring Data JPA release 1.4, we support the usage of restricted SpEL template expressions in manually defined queries that are defined with @Query. Upon the query being run, these expressions are evaluated against a predefined set of variables. Sprin
docs.spring.io
'JPA > Spring Data JPA' 카테고리의 다른 글
[Spring Data JPA] 6. 사용자 정의 Repository. DI 활용 (0) | 2023.11.24 |
---|---|
[Spring Data JPA] 5. JPA Hint & Lock (0) | 2023.11.23 |
[Spring Data JPA] 4. @EntityGraph (0) | 2023.11.23 |
[Spring Data JPA] 3. 벌크성 수정 쿼리 (0) | 2023.11.23 |
[Spring Data JPA] 2. Spring Data JPA Paging (0) | 2023.11.23 |