본문 바로가기

JPA

[JPA] 복수 조건 조회, WHERE 다중 조건 (And, Or 등)

반응형

1. And 사용하기 - findBy + 조건1 +And + 조건2 + ...

findBy[조건1]And[조건2]And... 이와 같이 findBy 뒤에 계속 조건과 And를 원하는만큼 번갈아가면서 붙여주면 된다.

*이 때, 중요한 것은 각 조건과 And 모두 첫글자를 대문자로 써줘야 한다는 것! 아래 예제를 보면 무슨 말인지 이해할 수 있을 것이다.

 

[ And 예제 ]

예제는 아래와 같다. 출발지(departure)와 도착지(destination)이 같은 Post를 모두 찾아오고 싶다면 findAllByDepartureAndDestination을 사용하면된다.

 

우선 repository에 선언을 해주고,

List<Post> findAllByDepartureAndDestination(Place departure, Place destination);

 

이런 식으로 컨트롤러에서 사용하면 된다.

List<Post> result = postRepository.findAllByDepartureAndDestination(departure, destination);

 

 

 

2. Or 사용하기 - findBy + 조건1 +Or + 조건2 + ...

findBy[조건1]Or[조건2]And... 이와 같이 findBy 뒤에 계속 조건과 Or를 원하는만큼 번갈아가면서 붙여주면 된다.

*이 때, 중요한 것은 각 조건과 Or 모두 첫글자를 대문자로 써줘야 한다는 것! 아래 예제를 보면 무슨 말인지 이해할 수 있을 것이다.

 

[ Or 예제 ]

예제는 아래와 같다. 출발지(departure)와 도착지(destination) 중 하나라도 일치하는 Post를 모두 찾아오고 싶다면 findAllByDepartureOrDestination을 사용하면된다.

 

우선 repository에 선언을 해주고,

List<Post> findAllByDepartureOrDestination(Place departure, Place destination);

 

이런 식으로 컨트롤러에서 사용하면 된다.

List<Post> result = postRepository.findAllByDepartureOrDestination(departure, destination);

 

 

And, Or 뿐만 아니라, not, between 같은 것들도 사용할 수 있다.

사용방법은 And, Or 처럼 사용하면 되는데, 아래 공식문서를 참고하면 된다.

참고문서 : https://docs.spring.io/spring-data/data-commons/docs/1.6.3.RELEASE/reference/html/repositories.html

 

1. Working with Spring Data Repositories

public interface UserRepository extends CrudRepository , UserRepositoryCustom { } Let your standard repository interface extend the custom one. Doing so makes CRUD and custom functionality available to clients.

docs.spring.io

 

728x90
반응형

'JPA' 카테고리의 다른 글

[JPA] findAll 일 때 정렬하기 (OrderBy, Sort)  (0) 2022.07.14