inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

예제 도메인 모델과 동작확인

Member에서 타고 들어가는 생성자에 관한 질문

해결된 질문

212

relate16

작성한 질문수 29

0

@Entity
@Getter @Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@ToString(of = {"id", "username", "age"})
public class Member {
@Id @GeneratedValue
private Long id;

private String username;
private int age;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TEAM_ID")
private Team team;

public Member(String username) {
this(username, 0);
}

public Member(String username, int age) {
this(username, age, null);
}

public Member(String username, int age, Team team) {
this.username = username;
this.age = age;
if (team != null) {
changeTeam(team);
}
}

에서 

public Member(String username) {

    this(username, 0); 

}

을 보면,

 

public Member(String username) {

    this(username, 0,  null); 

}

이 아니라

 

public Member(String username) {

    this(username, 0); 

}

을 사용한 이유는 가독성 때문인가요 ? 

 

 

java JPA

답변 1

2

David

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

.
생성자의 파라미터로 넘겨줄 team이 없는 점, team 없이도 Member를 생성할 수 있는 생성자가 있는 점 때문에 this(username, 0) 생성자를 호출한 것입니다.

만약 username, age, team을 받는 생성자만 있었다면 그것을 사용했을테지만 그게 아니라 더 적합한 생성자가 있기 때문입니다.
.
감사합니다.

0

relate16

음... 좀 잘 이해가 안돼서 질문 더드려요 ㅠㅠ 

    public Member(String username) {
this(username, 0);
}

이렇게 하면 

    public Member(String username, int age) {
this(username, age, null);
}

여기도 타야되고 

여기를 타게 되면 또 

    public Member(String username, int age, Team team) {
this.username = username;
this.age = age;
if (team != null) {
changeTeam(team);
}
}

여기까지 타야돼서 2번을 거쳐야 되는 건데,

 

어차피 결과적으로

변수로 username을 넘기고 고정으로 age는 0, team을 null로 넘길 거라면

public Member(String username) {

    this(username, 0,  null); 

}

이렇게 해서

    public Member(String username, int age, Team team) {
this.username = username;
this.age = age;
if (team != null) {
changeTeam(team);
}
}

한 번에 여기로 올 수 있게 하면 더 좋은 게 아닌가 싶은 생각인데 

음.. 뭘 잘못알고 있을까요 ? :[

0

David

취사선택의 문제입니다.

null을 쓰지 않는 생성자를 호출할 것인가.

아니면 null을 써서 생성자를 호출할 것인가.

저라면 굳이 team에 null을 추가로 넘기지 않고 username, age만 넘겨줘도 생성되는 생성자를 생성할 것 같습니다.

0

relate16

아 , 답변 감사합니다 ! :]

join에대해 질문드립니다.

0

11

1

SpringBoot 4.X에서의 Querydsl 설정

0

158

2

querydsl 오픈소스에 대한 질문

1

101

1

예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?

0

127

1

Querydsl 6.X버전에 대해서 어떻게 생각하시나요?

0

349

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

86

1

fetchResults()는 더이상 권장되지 않는다는데 맞나요?

0

172

1

querydsl sum() 메서드 없어요.

0

169

2

build 디렉터리 생성

0

152

2

자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?

0

123

2

현재 Querydsl에서 from절 서브쿼리를 지원하나요?

0

99

1

오타 제보 드립니다.

0

79

2

벌크 연산과 flush, clear

0

85

1

Run As Intellij 로 변경시 Q타입 import 불가

0

95

1

QHello import하기 문제 발생

0

157

2

등록된 함수 보는법(H2Dialect) 질문

0

76

2

5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의

1

209

2

[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??

1

213

1

querydsl 설정 문제

0

228

2

quey dsl 설정부분

0

168

2

count 쿼리 관련 질문입니다!

0

79

1

stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.

0

98

1

답변부탁드리겠습니다.

0

95

2

(OrderSpecifier)관련 내용 어디있을가요

0

68

1