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

조재연님의 프로필 이미지
조재연

작성한 질문수

스프링과 JPA 기반 웹 애플리케이션 개발

모임 도메인

안녕하세요. JPA 관련 질문이 있습니다.

작성

·

257

0

안녕하세요. 강사님 강의 매우 잘 듣고 있습니다 !
다름이 아니라 JPA 질문이 있는데 너무 뒤에서 질문을 남기는게 아닌가 싶습니다.
공부할 때 기본생성자가 필요하다고 배웠는데 다른 도메인 같은 경우는 AllArgsConstructor 랑 NoArgsConstructor 를 사용했는데, 이번 경우는 따로 안하셨더라구요.기본 생성자가 없을 경우 NoArgs 로 해서 PROTECTED 로 하거나 기본 생성자를 만드는 걸로 아는데. 따로 작성 안하신 이유가 있을까요..? 아니면 제가 잘못알고 있는건지 궁금합니다.
감사합니다.

답변 1

1

백기선님의 프로필 이미지
백기선
지식공유자

안녕하세요.

이번 경우에는 자바가 기본으로 만들어주는 생성자를 쓸거라서 굳이 롬복을 사용해서 만들 필요가 없었기 때문에 만들지 않았습니다.

"기본 생성자가 없을 경우 NoArgs 로 해서 PROTECTED 로 하거나 기본 생성자를 만드는 걸로 아는데."

질문 중에 이 부분이 잘 이해가 안되서 그러는데 조금 더 설명해 주실 수 있을까요? "기본 생성자가 없는 경우"가 아니라 아무런 생성자도 없는 경우에 자바가 기본 생성자를 만들어 주는데요. "NoArgs로 해서 PROTECTED로 하거나"는 누가 어떤 생성자를 PROTECTED로 만들어 준다는 말씀이시죠? 그리고 "기본 생성자가 없는 경우"에 "기본 생성자를 만든는 걸로 아는데"라고도 하셨는데 자바에서 어떤 클래스에 기본 생성자가 없는 경우에 기본 생성자를 만들어 준다는 말씀인가요? 기본 생성자가 아니라 우리가 임의의 생성자를 만들어 준 경우에도 그렇게 해주나요?

조재연님의 프로필 이미지
조재연
질문자

안녕하세요.

우선 질문중에 "기본 생성자가 없을 경우 NoArgs 로 해서 PROTECTED 로 하거나 기본 생성자를 만드는 걸로 아는데." 이걸 잘못 말한 것 같습니다.

Entity는 반드시 파라미터가 없는 생성자가 있어야 하고, 이것은 public 또는 protected 이어야 한다. <- 라고 알고 있어서 public xxx() 으로 하거나 @NoArgsConstructor AccessLevel.PROTECTED 을 많이 쓴다고 알고있어서 왜 이번에는 안만들었는지 궁금해서 작성하고 싶은 글을 잘못 작성했습니다.

조재연님의 프로필 이미지
조재연

작성한 질문수

질문하기