728x90
스프링 데이터 JPA
4. 스프링 데이터 JPA 활용
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/spring-data-jpa-study/tree/chap04-03-jpa-query_method
해당 포스팅 참고 인프런 강의
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
3. 스프링 데이터 JPA: 쿼리 메소드
쿼리 생성하기
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation
스프링 데이터 JPA 에서 지원하는 키워드
- And, Or
- Is, Equals
- LessThan, LessThanEqual, GreaterThan, GreaterThanEqual
- After, Before
- IsNull, IsNotNull, NotNull
- Like, NotLike
- StartingWith, EndingWith, Containing
- OrderBy
- Not, In, NotIn
- True, False
- IgnoreCase
쿼리 찾아쓰기
엔티티에 정의한 쿼리 찾아 사용하기 JPA Named 쿼리
미리 JPQL, Native 쿼리를 정의 해놓고 그 쿼리를 정의한 Name을 Lookup해서 사용하는 방법
해당 Entity 상단에 정의
@NamedQuery
@Entity
@NamedQuery(name = "Post.findByTitle", query = "SELECT p FROM Post AS p WHERE p.title = ?1")
@NamedNativeQuery
리포지토리 메소드에 정의한 쿼리 사용하기
@NamedQuery
를 사용하면 Entity가 지저분해 지므로 @Query
를 권장
메서드 위에 정의
@Query
@Query("SELECT p FROM Post AS p WHERE p.title = ?1")
List<Post> findByTitle(String title);
@Query(nativeQuery=true)
@Query(value = "SELECT p FROM Post AS p WHERE p.title = ?1", nativeQuery = true)
List<Post> findByTitle(String title);
728x90
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 데이터 JPA] 4-5. 스프링 데이터 JPA: Named Parameter과 SpEL (0) | 2019.12.14 |
---|---|
[스프링 데이터 JPA] 4-4. 스프링 데이터 JPA: 쿼리 메소드 Sort (0) | 2019.12.14 |
[스프링 데이터 JPA] 4-2. 스프링 데이터 JPA: 엔티티 저장하기 (0) | 2019.12.14 |
[스프링 데이터 JPA] 4-1. 스프링 데이터 JPA: JPA Repository (0) | 2019.12.14 |
[스프링 부트 개념과 활용] 5-3. 스프링 부트 Actuator 3부: 스프링 부트 어드민 (0) | 2019.12.05 |
댓글