클라이언트에 원하지 않는 정보 보내지 않기.

1.엔티티-칼럼에 @JsonIgnore 어노테이션 달기

아래와 같이 User정보에 password 같은 걸 빼고 보내고 싶을 때,

해당 칼럼에 @JsonIgnore 를 달아주면 Json형식으로 변환하는

series 단계에서 제외된다.

 

2.repository에서 불러올 때 원하는 정보만 가져오기 Projection 이용

Projection 방법 : 원하는 요소만 가져오도록 mapping 용 interface 작성 (Interface based Projections)

기본 { "id": 5,

      "username": "고로케",

       "password" : "CVKWMM25kK"

       "Department":{

                                "id" : 6,

                                "teamName" : "로켓단",

                                "address" : "강남구"

                               }

           }

 Mapping interface 로 User 요소중 원하는 요소를 type get**() 형태로 작성한다.

UserInfoMapping.java

>> 원하는 요소 get**() 으로 작성
public interface UserInfoMapping {
    String getId();
    String getUsername();
    Department getDepartment();
}
  • UserRepository
# UserInfoRepository 의 일반적으로 해당 user 불러오기 경우
public interface UserInfoRepository extends JpaRepository<User,Long> {
    Optional<User> findByEmail(String email);
}

 

  • 결과
userRepository.findById(Long user.getId())

>>> 결과
{
  "username": "고로케"
  "Department": { "id" : 6,
                   "teamName" : "로켓단",
                   "address" : "여의도동"
                   }
}

'항해 99(9기) > 항해 일일' 카테고리의 다른 글

항해 99 18일차  (0) 2022.10.06
항해 99 17일차  (0) 2022.10.05
항해 99 15일차  (0) 2022.10.03
항해 99 13일 차  (0) 2022.10.01
항해 12일 차  (0) 2022.09.30

+ Recent posts