반응형
엔티티를 DTO로 변환하여 사용하는 방법
생성자로는 Order를 파라미터로 받아 order의 정보가 set되게 하였다.
데이터로 받은 리스트인 orders를 SimpleOrderDto에 파라미터로 order 엔티티를
넘기면 리스트에 담긴 order 엔티티가 하나씩 꺼내져서 SimpleOrderDto로 변환되고
.collect를 사용하여 다시 List에 담아준 후 리턴했다
**위처럼 List를 바로 반환하게되면 배열이 반환되기 때문에 API 확장성이 굳어 버리기 떄문에 감싸줄 수 있는 객체를 만들어 한번 감싸주는 것이 좋다
ex)@Data
@AllArgsConstructor
static class Result<T>{
private T data
}
-장점
1.DTO의 필드는 곧 API 스펙이 되기 때문에 엔티티를 사용하는 것과 다르게 필드명을 지정하여 사용할 수 있다.
2.스펙상에 추가하고 싶은 것들만 필드로 만들어 받아왔기 떄문에 성능상으로 훨씬 좋다
3. 엔티티가 직접 노출되지 않기떄문에 보안상으로 좋다.
4.엔티티가 변경된다 해도 스펙이 변경되지 않고 컴파일시 오류를 확인할 수 있다
반응형
'JPA' 카테고리의 다른 글
JPA 공부 1 - 영속성 컨텍스트 (0) | 2021.06.03 |
---|---|
Springboot- JPA 페이징처리 (0) | 2020.11.20 |
JPA 패치조인 활용 (0) | 2020.11.13 |
SPRING - JPA를 활용한 API 개발 (비권장) (0) | 2020.11.13 |
SPRING BOOT-JPA entity , repository 생성과 테스트 코드 생성 (0) | 2020.11.05 |