Spring

Springboot JPA 쿼리메소드 사용하기

Stater 2019. 11. 17. 09:05

쿼리 메소드

- 메소드의 이름으로 필요한 쿼리를 만들어주는 기능

- 간단한 가지수의 네이밍 룰를 통해 바로 사용이 가능하다.

 

 

쿼리메소드를 이용할 때 가장 많이 사용하는 문법

- 검색대상의 엔티티에서 특정 변수의 값만 조회하는 것

- 메소드 이름을 find로 시작하면서 조회할 변수들을 조합해서 사용

 

find+엔티티 이름+By+변수이름

예시) findBoardByTitle(): Board 엔티티에서 title 변수 값만 조회한다.

 

쿼리 메소드 작성 팁

- 쿼리 메소드를 작성할 때에 엔티티 이름은 생략할 수 있다.

  엔티티 이름이 생략되면 현재 사용하는 Repository 인터페이스에

  선언된 타입정보를 기준으로 자동으로 엔티티 이름이 적용 된다.

 

ex) BoardRepository인터페이스를 다음과 같이 작성했다면, 제네릭으로 선언한 Board 엔티티가 자동으로 결정되는 방식

public interface BoardRepository extends CrudRepository<Board, Long>

엔티티 이름을 생략하고 변수이름만 붙여도 동일한 결과가 출력

findBy+변수이름

예시) findByTitle() : Board 엔티티에서 title 변수 값만 조회한다.

쿼리메소드의 리턴 타입은 Page<T>,Slice<T>,List<T>이며, Collection<T>의 타입이다.

사용빈도가 가장 많은 것은 Page<T>,List<T>

단순목록 검색 : List<T>

페이징처리 : Page<T>

 

데이터 정렬하기

OrderBy + 변수 + Asc or Desc

 

Page<T> 타입 사용

스프링 MVC에서 검색결과를 사용할 목적 -> List<T> 보다는 Page<T>를 사용하는 것을 추천

Page<T>객체는 페이징 처리할 때 사용 할 수 있는 다양한 정보를 추가 제공

 

Page<T>의 장점 

 

반응형

'Spring' 카테고리의 다른 글

스프링 시큐리티  (0) 2019.11.20
Springboot Thymeleaf 적용방법  (0) 2019.11.18
springboot JPA Annotation 정리  (0) 2019.11.16
Springboot 자동설정 및 의존성 관리  (0) 2019.11.14
Lombok  (0) 2019.11.13