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

chlghksdyd31님의 프로필 이미지
chlghksdyd31

작성한 질문수

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

엔티티 설계시 주의점

cascade, 연관관계 사용 기준 질문.

작성

·

311

1

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요 강의 잘 듣고 있습니다.

cascade,연관 관계를 사용하는 기준이 궁금해서 질문 글을 작성합니다.

1.cascade 질문

제가 이해한 바로는 엔티티를 영속성 컨텍스트 관리를 받기 위해 persist 등록하는 것이며 각 엔티티는 따로따로 persist를 해야 되는데 cascade를 사용하면 하나의 엔티티를 persist할 때 그와 연관된 엔티티를 같이 해주는 것으로 이해했습니다. Order 코드에서 OrderItem과 Delivery에 cascade가 적용됐는데 Member에는 적용을 안 하는 것 같더라고요. 왜 Member는 안 하는지 궁금합니다.

 

  1. 연관 관계 질문

order와 연관된 엔티티 간에 연관관계 메소드를 통해 한쪽에서 서로 등록해주는 것은 이해가 가는데 Item과 Category간에는 어느 쪽에도 연관 관계 메소드가 없는 이유가 궁금합니다. Item과 Category 이 둘은 약간 상수? 느낌이라서 연관 관계를 지을 필요가 없는 것일까요?

 

답변 주시면 정말 감사하겠습니다.

답변 1

3

안녕하세요. chlghksdyd31님, 공식 서포터즈 코즈위버입니다.

1 제 기준은 이렇습니다. 생성시기가 동일한 것은 cascade를 적용하며 다른 것은 적용하지 않습니다. 회원, 상품, 주문 엔터티는 그 생성시기가 각각 다릅니다. 반면 주문과 주문상품은 동시에 (물론 주문이 먼저) 생성되어야 하지요? 이럴 경우에는 cascade를 적용하여 데이터를 한 번에 생성합니다.

  1. 객체그래프 탐색을 바로 시도해야 하는 경우라면 연관관계 편의 메서드를 제공하는것이 좋습니다. Item과 Category를 연결하는 ItemCategory 엔터티를 생성할 때 이 안에서 객체를 서로 연결하는 방법도 있습니다.

감사합니다.

chlghksdyd31님의 프로필 이미지
chlghksdyd31
질문자

엔티티의 탄생 관점에서 보니까 이해가 확 되네요. 빠르고 명쾌한 답변 정말 감사합니다. 즐거운 하루 되세요!

chlghksdyd31님의 프로필 이미지
chlghksdyd31

작성한 질문수

질문하기