• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

안녕하세요. DTO 생성자에 매개변수를 엔티티로 설정하면 문제가 될 수 있나요?

23.06.10 12:02 작성 조회수 462

0

안녕하세요.

프로젝션으로 결과를 반환할 때 엔티티를 매개 변수로 받으면 안되는 건지 궁금증이 생겼습니다.

@Data
@NoArgsConstructor
public class MemberDto {
    private String username;
    private int age;

    @QueryProjection
    public MemberDto(Member member) {
        this.username = member.getUsername();
        this.age = member.getAge();
    }
}

넣어주고자 하는 값이 많을 때 엔티티 자체를 넘겨주면 되지 않나? 라는 생각이 들어 케이스를 구글링해봤는데 모든 예제를 봤을 때 각각의 필요한 값만 매개변수로 설정하는 것으로 보이더라구요.

혹시 그 이유가 있는것인지, 이렇게 매개변수를 엔티티로 받게 되면 문제가 될 부분이 있어서 사용을 하지 않는 것인지 궁금합니다.

감사합니다!

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2023.06.11

안녕하세요. chaerin920님, 공식 서포터즈 y2gcoder입니다.

dto에는 member 객체가 가지고 있는 모든 속성들이 필요하지 않고, username, age라는 특정 값만 필요하기 때문에 보통 dto의 생성자에는 필요한 값만 파라미터로 받아주는 방향으로 많이들 구성하시는 것 같습니다. 제 생각에는 member 엔티티 자체로 둬도 큰 문제는 없을 것 같습니다 :)

감사합니다.