쿼리 메소드
- 메소드의 이름으로 필요한 쿼리를 만들어주는 기능
- 간단한 가지수의 네이밍 룰를 통해 바로 사용이 가능하다.
쿼리메소드를 이용할 때 가장 많이 사용하는 문법
- 검색대상의 엔티티에서 특정 변수의 값만 조회하는 것
- 메소드 이름을 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 |