강의

멘토링

커뮤니티

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

유하님의 프로필 이미지
유하

작성한 질문수

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

엔티티 설계시 주의점

질문드려요 !!

작성

·

254

0

연결 되는 질문이라서 한번에 여쭤 보려구요 ~!

  1. order 테이블에 orderitems list랑, delivery 필드에 cascade.all이 되어 있잖아요.

    cascade는 연관관계의 "주인"이든 "주인이 아니든" 상관없이 여기가 persist(order)되면 다른 것도 같이 persist가 따라온다고 생각해도 되나요?

  2. 선생님께서 persist(order)할때 orderitemA, orderitemB , orderitemC까지 persist되는 건 list에 있기 때문이라고 하셨는데 ,,, 그렇다는 말은 cascade는 양방향 관계일 때 따라서 persist가 된다고 이해해도 되나요?

     

답변 1

0

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

1. order 테이블에 orderitems list랑, delivery 필드에 cascade.all이 되어 있잖아요.

cascade는 연관관계의 "주인"이든 "주인이 아니든" 상관없이 여기가 persist(order)되면 다른 것도 같이 persist가 따라온다고 생각해도 되나요?

 

먼저 cascade(영속성 전이)는 말씀해주신 것처럼 연관관계 매핑과는 다른 문제라고 생각하시는게 맞습니다.

A와 B라는 엔티티를 개발하고 있는데 객체입장에서 B 엔티티가 A 엔티티에 종속적이라면 cascade를 고민하실 수 있습니다.

 

2. 선생님께서 persist(order)할때 orderitemA, orderitemB , orderitemC까지 persist되는 건 list에 있기 때문이라고 하셨는데 ,,, 그렇다는 말은 cascade는 양방향 관계일 때 따라서 persist가 된다고 이해해도 되나요?

 

cascade 옵션을 양방향 관계에서 Order Entity 안의 orderItems 필드에 줬기 때문에 Order 엔티티를 persist 할 때, 그에 종속되는 orderItem들도 같이 persist 되었습니다. cascade 옵션은 말씀하신 것처럼 양방향 관계에서 주로 사용하는 것 같습니다.

유하님께서 해주셨던 말씀을 조금이나마 정리해보려고 했습니다.


감사합니다.

유하님의 프로필 이미지
유하

작성한 질문수

질문하기