쿼리 메소드 (Query Method)

Codren·2021년 9월 20일
0

Spring Boot 쇼핑몰

목록 보기
5/32

Section 1. 쿼리 메소드 (Query Method)

1. 쿼리 메소드 (Query Method)

Spring Data JPA 에서 제공하는 핵심 기능 중 하나로 Repository 인터페이스에 간단한 네이밍 룰에 따라 메소드를 작성하면, 원하는 쿼리를 실행하도록 지원하는 메소드



2. 쿼리 메소드 문법

  • find 문법
find + (엔티티 이름) + By + 변수이름



3. 쿼리 메소드 Sample 및 JPQL snippet

KeywordSampleJPQL snippet
DistinctfindDistinctByLastnameAndFirstnameselect distinct … where x.lastname = ?1 and x.firstname = ?2
AndfindByLastnameAndFirstname… where x.lastname = ?1 and x.firstname = ?2
OrfindByLastnameOrFirstname… where x.lastname = ?1 or x.firstname = ?2
Is、EqualsfindByFirstname, findByFirstnameIs, findByFirstnameEquals… where x.firstname = ?1
BetweenfindByStartDateBetween… where x.startDate between ?1 and ?2
LessThanfindByAgeLessThan… where x.age < ?1
LessThanEqualfindByAgeLessThanEqual… where x.age <= ?1
GreaterThanfindByAgeGreaterThan… where x.age > ?1
GreaterThanEqualfindByAgeGreaterThanEqual… where x.age >= ?1
AfterfindByStartDateAfter… where x.startDate > ?1
BeforefindByStartDateBefore… where x.startDate < ?1
IsNull、NullfindByAge(Is)Null… where x.age is null
IsNotNull、NotNullfindByAge(Is)NotNull… where x.age not null
LikefindByFirstnameLike… where x.firstname like ?1
NotLikefindByFirstnameNotLike… where x.firstname not like ?1
StartingWithfindByFirstnameStartingWith… where x.firstname like ?1 ( %가 뒤에 추가된 매개 변수)
EndingWithfindByFirstnameEndingWith… where x.firstname like ?1 ( %가 앞에 추가된 매개 변수)
ContainingfindByFirstnameContaining… where x.firstname like ?1 ( %가 래핑된 매개 변수)
OrderByfindByAgeOrderByLastnameDesc… where x.age = ?1 order by x.lastname desc
NotfindByLastnameNot… where x.lastname <> ?1
InfindByAgeIn(Collection ages)… where x.age in ?1
NotInfindByAgeNotIn(Collection ages… where x.age not in ?1
TruefindByActiveTrue()… where x.active = true
FalsefindByActiveFalse()… where x.active = false
IgnoreCasefindByFirstnameIgnoreCase… where UPPER(x.firstname) = UPPER(?1)




4. 상품 조회하기 테스트

  • 상품의 이름 (= itemNm 컬럼) 값으로 상품을 조회하는 쿼리 메소드 테스트 수행
  • select 결과로 List<Item> 객체를 반환 받음




5. 실제 쿼리 전달 및 결과

  • select 쿼리 전달 (where 절에 item_nm 으로 조건을 명시)

  • select 쿼리 결과

0개의 댓글