본문 바로가기
Spring/JPA

QueryMethod 예제 2

by step 1 2021. 7. 17.
반응형

jpa 메소드를 생성할 때 by 이하의 절에 where 조건에 추가할 변수명을 입력하여 사용한다.

 

and / or 조건 예제

// and, or 조건문
    List<User> findByEmailAndName(String email, String name);
    List<User> findByEmailOrName(String email, String name);

테스트 코드

System.out.println("findByEmailAndName: " + userRepository.findByEmailAndName("martin@fastcampus.com","martin"));
System.out.println("findByEmailOrName: " + userRepository.findByEmailOrName("martin@fastcampus.com","dennis"));

확인

 

특정 숫자 이상의 값을 구하는 예제

After, Before를 이용하여 값을 구할 수 있다.

List<User> findByCreatedAtAfter(LocalDateTime yesterday);
List<User> findByIdAfter(Long id);

테스트 코드

// 어제 날짜를 입력
// 어제 날짜 이후로 출력
System.out.println("findByCreatedAtAfter: " + userRepository.findByCreatedAtAfter(LocalDateTime.now().minusDays(1L)));
// ID가 4초과인 데이터 출력        
System.out.println("ffindByIdAfter: " + userRepository.findByIdAfter((4L)));

 

Before와 After는 = 을 포함하지 않는다.

따라서 호환가능한 다른 키워드를 이용할 수 있다.

List<User> findByCreatedAtGreaterThan(LocalDateTime yesterday);
List<User> findByCreatedAtGreaterThanEqual(LocalDateTime yesterday);

테스트 코드

System.out.println("findByCreatedAtGreaterThan: " + userRepository.findByCreatedAtGreaterThan(LocalDateTime.now().minusDays(1L)));
System.out.println("findByCreatedAtGreaterThanEqual(: " + userRepository.findByCreatedAtGreaterThanEqual(LocalDateTime.now().minusDays(1L)));

 

equals를 포함한 데이터 출력 확인

 

특정범위 사이의 데이터를 출력하는 예제 (Between)

양 끝단의 데이터를 함께 출력한다.

List<User> findByCreatedAtBetween(LocalDateTime yesterday, LocalDateTime tomorrow);
List<User> findByIdBetween(Long id1, Long id2);

테스트 코드

// 어제와 오늘 사이의 데이터를 출력
System.out.println("findByCreatedAtBetween(: " + userRepository.findByCreatedAtBetween(LocalDateTime.now().minusDays(1L), LocalDateTime.now().plusDays(1L)));
// Id값이 1과 3 사이의 데이터 출력
System.out.println("findByIdBetween(: " + userRepository.findByIdBetween(1L, 3L));

 

위와 같은 결과 같을 가져오는 쿼리

List<User> findByIdGreaterThanEqualAndIdLessThanEqual(Long id1, Long id2);

테스트 코드 작성

// 위와 같은 결과 값을 출력하는 테스트 코드
System.out.println("findByIdGreaterThanEqualAndIdLessThanEqual: " + userRepository.findByIdGreaterThanEqualAndIdLessThanEqual(1L, 3L));

결과 확인

반응형

'Spring > JPA' 카테고리의 다른 글

Query Method 예제 - 4 (정렬)  (0) 2021.07.17
Query Method 예제 - 3  (0) 2021.07.17
Query Method 구현 1  (0) 2021.07.17
JPA 메소드 예제 3 - update  (0) 2021.07.11
JPA TEST 코드 예제 2  (0) 2021.07.11