클라이언트에 원하지 않는 정보 보내지 않기.
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 |