서술어(Predicate) 부분에서 사용할 수 있는 몇가지 조건자 키워드이다.
Is
보통 생략하는 키워드
값의 일치를 조건으로 사용한다.
// Is, Equals 키워드를 사용한 쿼리 메서드
Product findByNumberIs(Long number); // findByNumber 과 똑같다.
Product findByNumberEquals(Long number); // findByNumber 과 똑같다.
(Is)Not
값의 불일치를 사용하는 키워드
Not만 사용해도 무방
// Not 키워드를 사용한 쿼리 메서드
Product findByNumberIsNot(Long number); // number 가 아닌 데이터 조회
Product findByNumberNot(Long number); // Is 생략이 가능하다.
(Is)Null, (Is)NotNull
값이 null인지 확인하는 키워드
// Null 키워드를 사용한 쿼리 메서드
List<Product> findByUpdatedAtIsNull(); // updatedAt이 null 인 데이터 조회
List<Product> findByUpdatedAtNull(); // Is 생략이 가능하다.
List<Product> findByUpdatedAtIsNotNull(); // updatedAt이 null 이 아닌 데이터 조회
List<Product> findByUpdatedAtNotNull(); // Is 생략이 가능하다.
(Is)True, (Is)False
boolean 타입으로 지정된 컬럼값을 확인하는 키워드
// True, False 키워드를 사용한 쿼리 메서드
Product findByisActiveTrue(); // Is 생략이 가능하다.
Product findByisActiveIsTrue(); // isActive 가 true 인 데이터 조회
Product findByisActiveIsFalse(); // isActive 가 false 인 데이터 조회
Product findByisActiveFalse(); // Is 생략이 가능하다.
And, Or
여러 조건을 묶을 때 사용하는 키워드
// And, Or 키워드를 사용한 쿼리 메서드
Product findByNumberAndName(Long number, String name); // number 와 name 모두 일치하는 데이터 조회
Product findByNumberOrName(Long number, String name); // number 또는 name 이 일치하는 데이터 조회
(Is)GreaterThan, (Is)LessThan, (Is)Between
숫자나, datetime 컬럼을 대상으로 비교 연산 키워드
- GeraterThan
- 초과 연산
- LessThan
- 미만 연산
- Between
- 경곗값이 포함된 사이값
경계값을 포함하려면 Equal 추가
// GreaterThan, LessThan, Between 키워드를 사용한 쿼리 메서드
List<Product> findByPriceIsGraterThan(Long price); // price 가 해당 값 초과인 데이터 조회
List<Product> findByPriceGraterThan(Long price); // Is 생략이 가능하다.
List<Product> findByPriceIsGraterThanEqual(Long price); // price 가 해당 값 이상인 데이터 조회
List<Product> findByPriceGraterThanEqual(Long price); // Is 생략이 가능하다.
List<Product> findByPriceIsLessThan(Long price); // price 가 해당 값 미만인 데이터 조회
List<Product> findByPriceLessThan(Long price); // Is 생략이 가능하다.
List<Product> findByPriceIsLessThanEqual(Long price); // price 가 해당 값 이하인 데이터 조회
List<Product> findByPriceLessThanEqual(Long price); // Is 생략이 가능하다.
List<Product> findByPriceIsBetween(Long lowPrice, Long highPrice); // lowPrice <= price <= highPrice 인 데이터 조회
List<Product> findByPriceBetween(Long lowPrice, Long highPrice); // Is 생략이 가능하다.
(Is)StartingWith(==StartsWith), (Is)EndingWith(==EndsWith), (Is)Containing(==Contains), (Is)Like
컬럼값에서 일부 일치 여부 확인
‘%’ 키워드와 동일하게 동작한다.
- StartingWith
- ‘%데이터’
- EndingWith
- ‘데이터%’
- Containing
- ‘%데이터%’
- Like
- 전달하는 값에 %를 명시적으로 입력해주는 키워드
// 부분 일치 키워드를 사용한 쿼리 메서드
List<Product> findByNameIsLike(String name); // 명시적으로 %를 입력한 값을 받는 name 컬럼의 부분 일치 데이터 조회
List<Product> findByNameLike(String name); // Is 생략이 가능하다.
List<Product> findByNameIsContaining(String name); // 파라미터 name 이 포함된('%{name}%') 데이터 조회
List<Product> findByNameContaining(String name); // Is 생략이 가능하다.
List<Product> findByNameContains(String name); // Contains 라고 써도 된다.
List<Product> findByNameIsStartingWith(String name); // 파라미터 name 으로 시작하는('{name}%') 데이터 조회
List<Product> findByNameStartingWith(String name); // Is 생략이 가능하다.
List<Product> findByNameStartsWith(String name); // StartsWith 라고 써도 된다.
List<Product> findByNameIsEndingWith(String name); // 파라미터 name 으로 끝나는('%{name}') 데이터 조회
List<Product> findByNameEndingWith(String name); // Is 생략이 가능하다.
List<Product> findByNameEndsWith(String name); // EndsWith 라고 써도 된다.
Uploaded by N2T
'Programming > [Spring Boot]' 카테고리의 다른 글
Spring Data JPA 활용하기 (0) | 2023.03.29 |
---|---|
[Spring Data JPA] - 쿼리 메서드의 주제(Subject) 키워드 (0) | 2023.03.29 |
테스트 주도 개발(TDD) (0) | 2023.03.16 |
테스트코드 작성 (이론편) (0) | 2023.03.16 |
컨트롤러 테스트 코드 작성 (0) | 2023.03.16 |