작성
·
127
·
수정됨
0
1. 엔티티 설계시 주의점 10분6초에서 fetch=FetchType.LAZY 을 fetch=LAZY 로 변경하시는데요. 강의 아래화면에서 방향을 보니까 alt +endter를 누르시는데 저는 오른쪽 화면 처럼 나옵니다. 어떻게 해야하나요?
24분 40초에 나오는 setMember(Member member) 부분 코드 설명이 아래처럼 이해해도 되나요?
public void setMember(Member member){
// 현재 Order 객체의 member 필드에 매개변수로 받은 Member 객체를 할당합니다.
this.member = member;
// Member 객체의 getOrders 메서드를 호출해 주문 목록을 가져온 뒤, 현재 Order 객체(this)를 그 목록에 추가합니다.
// 이는 Member 객체 내부의 주문 목록에도 현재 Order 객체가 포함되도록 하는 역방향 연결을 설정합니다.
member.getOrders().add(this);
}
3.getOrders()는 메소드로 정의된게 없는데 왜 빨간줄이 안뜨나요?
강의에서 setter 기능은 쓰지 말라고 하셨는데 setMember와 setter 는 다른 기능인가요?
setMember 이 부분을 쓰는 이유가 아래 동그라미 표시가 있기 때문인가요?
답변 1
0
안녕하세요. zzzzz님, 공식 서포터즈 y2gcoder입니다.
9분 57초를 보시면 아시겠지만 강의화면에서도 zzzzz님과 똑같이 뜨고 있습니다. 바로 엔터를 쳐서 on-demand static import 를 해주시면서 빨리 넘어가느라 못보신 것 같습니다! 그 뒤로는 동일한 걸 import 하면 알아서 static import 가 됩니다!
네 그렇게 이해해주십쇼!
11분 16초에 보면 Member 엔티티 클래스가 잠깐 보입니다. 클래스 윗단을 보시면 @Getter 가 붙어있는데, 그게 클래스에 붙어있으면 모든 클래스의 필드에 대해 getter 메서드를 생성합니다. 그래서 getOrders()도 생성된 것입니다. @Getter 를 주석처리해보시면 더 확실하게 아실 수 있습니다 :)
같은 것입니다. 강의에서도 쓰지말길 권장드린다고 말씀드렸습니다! 그치만 어쩔 수 없이 사용해야 하는 곳에는 사용해도 됩니다! 여기서는 Order 객체에서 연관관계에 있는 member 를 연결해주기 위해서 사용하고 있습니다!
setMember는 캡처의 회원 엔티티 분석 에서 Order의 member 필드에 세팅을 해주기 위한 메서드입니다!
감사합니다.
제가 setter로서의 기능만 설명한 것 같습니다 죄송합니다!
setMember()는 setter기는 하나 단순히 Order의 member 필드에 세팅해주는 것 외에도 연관관계 편의 메서드로서 member 엔티티에 있는 List<Order> orders 필드에도 값을 추가하는 기능도 해주고 있습니다!
이 부분은 양방향 연관관계에 대한 이해가 있어야 하고 해당 개념은 매우 중요합니다!
영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의의 섹션 5. 연관관계 매핑 기초 를 학습하시길 권해드립니다!
setMember는 캡처의 회원 엔티티 분석 에서 Order의 member 필드에 세팅을 해주기 위한 메서드입니다!라면 member에서 orders를 추가하는건 어느 코드인가요?