728x90
스프링 데이터 JPA
4. 스프링 데이터 JPA 활용
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/spring-data-jpa-study/tree/chap04-04-jpa-sort
해당 포스팅 참고 인프런 강의
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
4. 스프링 데이터 JPA: 쿼리 메소드 Sort
이전과 마찬가지로 Pageable이나 Sort를 매개변수로 사용할 수 있는데, @Query
와 같이 사용할 때 제약 사항이 하나 있습니다
Order by 절에서 함수를 호출하는 경우에는 Sort를 사용하지 못합니다
그 경우에는 JpaSort.unsafe()
를 사용 해야 합니다
- Sort는 그 안에서 사용한 프로퍼티 또는 alias가 엔티티에 없는 경우에는 예외가 발생합니다
`JpaSort.unsafe()
JpaSort.unsafe()
를 사용하면 함수 호출을 할 수 있습니다
JpaSort.unsafe(“LENGTH(firstname)”);
import org.springframework.data.domain.Sort;
@Query("SELECT p FROM Post AS p WHERE p.title = ?1")
List<Post> findByTitle(String title, Sort sort);
테스트 코드
List<Post> all = postRepository.findByTitle("Spring", Sort.by("title"));
프로퍼티 또는 alias 가 아닌 경우 오류
Sort.by("LENGTH(title)")
JpaSort.unsafe() 예제
JpaSort.unsafe()
를 사용하면 함수를 호출 한 결과로 정렬하는 것도 가능함
JpaSort.unsafe(“LENGTH(title)")
alias 예제
p.title AS pTitle
처럼 alias를 줄 수 있음
@Query("SELECT p, p.title AS pTitle FROM Post AS p WHERE p.title = ?1")
List<Post> findByTitle(String title, Sort sort);
728x90
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 데이터 JPA] 4-6. 스프링 데이터 JPA: Update 쿼리 메소드 (0) | 2019.12.14 |
---|---|
[스프링 데이터 JPA] 4-5. 스프링 데이터 JPA: Named Parameter과 SpEL (0) | 2019.12.14 |
[스프링 데이터 JPA] 4-3. 스프링 데이터 JPA: 쿼리 메소드 (0) | 2019.12.14 |
[스프링 데이터 JPA] 4-2. 스프링 데이터 JPA: 엔티티 저장하기 (0) | 2019.12.14 |
[스프링 데이터 JPA] 4-1. 스프링 데이터 JPA: JPA Repository (0) | 2019.12.14 |
댓글