인프런 커뮤니티 질문&답변

chaerin920님의 프로필 이미지

작성한 질문수

실전! Querydsl

프로젝션과 결과 반환 - @QueryProjection

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

23.06.10 12:02 작성

·

552

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님의 프로필 이미지

2023. 06. 11. 23:53

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

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

감사합니다.