inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

엔티티 설계시 주의점 질문입니다.

199

zzzzz

작성한 질문수 192

0

fetch조인문의.png1. 엔티티 설계시 주의점 10분6초에서 fetch=FetchType.LAZY 을 fetch=LAZY 로 변경하시는데요. 강의 아래화면에서 방향을 보니까 alt +endter를 누르시는데 저는 오른쪽 화면 처럼 나옵니다. 어떻게 해야하나요?

 

  1. 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()는 메소드로 정의된게 없는데 왜 빨간줄이 안뜨나요?

  1. 강의에서 setter 기능은 쓰지 말라고 하셨는데 setMember와 setter 는 다른 기능인가요?

  2. setMember 이 부분을 쓰는 이유가 아래 동그라미 표시가 있기 때문인가요?

 

질문1.png

java spring 웹앱 spring-boot jpa

답변 1

0

y2gcoder

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

  1. 9분 57초를 보시면 아시겠지만 강의화면에서도 zzzzz님과 똑같이 뜨고 있습니다. 바로 엔터를 쳐서 on-demand static import 를 해주시면서 빨리 넘어가느라 못보신 것 같습니다! 그 뒤로는 동일한 걸 import 하면 알아서 static import 가 됩니다!

  2. 네 그렇게 이해해주십쇼!

  3. 11분 16초에 보면 Member 엔티티 클래스가 잠깐 보입니다. 클래스 윗단을 보시면 @Getter 가 붙어있는데, 그게 클래스에 붙어있으면 모든 클래스의 필드에 대해 getter 메서드를 생성합니다. 그래서 getOrders()도 생성된 것입니다. @Getter 를 주석처리해보시면 더 확실하게 아실 수 있습니다 :)

  4. 같은 것입니다. 강의에서도 쓰지말길 권장드린다고 말씀드렸습니다! 그치만 어쩔 수 없이 사용해야 하는 곳에는 사용해도 됩니다! 여기서는 Order 객체에서 연관관계에 있는 member 를 연결해주기 위해서 사용하고 있습니다!

  5. setMember는 캡처의 회원 엔티티 분석 에서 Order의 member 필드에 세팅을 해주기 위한 메서드입니다!

 

감사합니다.

1

zzzzz

  1. setMember는 캡처의 회원 엔티티 분석 에서 Order의 member 필드에 세팅을 해주기 위한 메서드입니다!라면 member에서 orders를 추가하는건 어느 코드인가요?

     

0

y2gcoder



제가 setter로서의 기능만 설명한 것 같습니다 죄송합니다!
setMember()는 setter기는 하나 단순히 Order의 member 필드에 세팅해주는 것 외에도 연관관계 편의 메서드로서 member 엔티티에 있는 List<Order> orders 필드에도 값을 추가하는 기능도 해주고 있습니다!
이 부분은 양방향 연관관계에 대한 이해가 있어야 하고 해당 개념은 매우 중요합니다!

영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의의 섹션 5. 연관관계 매핑 기초 를 학습하시길 권해드립니다!

sdk 설정 오류

0

53

2

오탈자 - @Transactional

0

56

1

src/test/resources 테스트 경로 문제

0

50

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

64

1

MemberRepositoryTest 실행오류

0

81

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

183

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

142

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

51

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

71

1

기본 생성자

0

60

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

103

1

멤버서비스테스트 부분에서 막힙니다.

0

165

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

116

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

120

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

114

1

24분 27초 연관관계 편의 메서드 위치

0

113

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

109

2

빌드 툴, Gradle

0

59

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

77

2

Repository에서 EntityManager 주입 방식 차이

0

90

1

롬복과 사용자 정의 setter 메서드

0

73

1

주문 목록 조회 fetch join 질문드립니다

0

82

1

dirty checking 질문드립니다.

0

83

1

동시성 관련 질문입니다

0

75

1