Tuesday, June 12, 2018

Spring JPA에서 동적 'where' 절 사용하기

Spring JPA에서 동적 'where' 절 사용하기

Spring JPA Repository를 사용하면서 where 절의 조건을 동적으로 추가하고 싶을 때가 있습니다. 이러한 상황은 예상보다 흔하지만, 해결 방법을 찾는 것이 어려울 수 있습니다. 여기서는 공식 문서를 참고하여 Example.of 메소드를 사용하는 방법에 대해 설명합니다.

[User] 클래스 예시

'User'라는 클래스가 있고, 이 클래스에 'name', 'age' 속성이 있다고 가정해봅시다. 그리고 이를 기반으로 유저 검색 API를 생성하려 합니다. 요청에 따라 전체 또는 이름으로 검색하거나 둘 다 가능하게 하려면 어떻게 해야 할까요?

동적 'where' 절 구현 코드

@GetMapping("/users")
public ResponseEntity<?> findUser(@ModelAttribute User user)
{
    List<User> findResult = jpaRepository.findAll(Example.of(user));
    response.put("users", findResult);
    return ResponseEntity.ok(response);
}

Example.of 메소드를 사용함으로써 위와 같이 간단히 구현할 수 있습니다. 이제 클라이언트 측에서 'name'이나 'age' 값을 넣어 요청하면, where 절이 동적으로 적용됩니다.

참조 링크


0 개의 댓글:

Post a Comment