인프런 커뮤니티 질문&답변

지현명님의 프로필 이미지
지현명

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

프로그래밍으로 제어하는 Filtering - 개별 사용자 조회

@JsonFilter("UserInfo") 를 사용하면 ResponseEntity<List<User>>를 못쓰나요?

작성

·

292

1

@JsonFilter("UserInfo") 를 사용해서 기존에 개발했던 아래 함수를 호출 하니 에러가 발생합니다. 모델쪽에 JsonFilter를 사용하면 컨트롤러쪽에 MappingJacksonValue는 반듯이 사용해야 하는 건가요?
@GetMapping("/users")
public ResponseEntity<List<User>> retrieveAllUsers(){

답변 1

2

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

JsonFilter로 정의 한 내용을 반영하기 위해서,  BeanPropertyFilter에서 정의한 내용을 FilterProvider로 변환한 다음, MappingJacksonValue 클래스에서 적용하게 됩니다.

데이터베이스에서는 전체 데이터를 반환하고 결과를 다시 Filter에 정의 된 내용만 사용하시려면 위 방법으로 처리하셔야 할 것 같습니다. 

동적으로 Filter를 적용하지 않으려면, DB에서 값을 가져올 때 필요한 컬럼만 지정해서 가져오신 다음에, 해당 컬럼의 데이터가 Null인 데이터는 표시되지 않도록 아래와 같은 어노테이션을 추가해 볼 수도 있습니다. 

@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class User {

감사합니다. 

지현명님의 프로필 이미지
지현명

작성한 질문수

질문하기