• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

21.06.28 10:21 작성 조회수 209

0

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

답변 1

답변을 작성해보세요.

1

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

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

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

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

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

감사합니다.