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

jhj13062004님의 프로필 이미지

작성한 질문수

JPA & Spring Data JPA 기초

JPA 기초 08 값 콜렉션 Set 매핑

1:N 매핑과 해당 방식 차이가 뭔가요?

23.11.06 23:41 작성

·

289

0

1:N 매핑과 해당 방식 차이가 뭔가요?

답변 2

1

최범균님의 프로필 이미지
최범균
지식공유자

2023. 11. 08. 20:40

1:N은 엔티티와 엔티티 간 매핑입니다.

엔티티 간 매핑이므로 서로 독립적인 라이프사이클을 갖습니다.

예를 들어, A와 B가 1:N 관계일 때 A를 삭제한다고 해서 A와 연관된 모든 B가 삭제되지는 않죠.

물론 엔티티 간 연관에 영속성 전파 설정을 하면 같이 삭제되지만요.

 

반면에 값 콜렉션은 엔티티와 값의 관계입니다.

즉 엔티티를 삭제하면 엔티티에 속한 값도 함께 삭제됩니다.

또한 값만 따로 조회할 수 없습니다. 엔티티를 조회해야 엔티티에 속한 값도 같이 조회가 되지요.

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

2023. 11. 13. 21:35

감사합니다! 혹시 값 콜렉션은 언제 주로 사용하는걸까요? 값 콜렉션도 엔티티 간 매핑으로 할 수 있을 것 같은데, 어떠한 기준으로 생각해야할지 잘 모르겠습니다 ㅠ.ㅠ

0

최범균님의 프로필 이미지
최범균
지식공유자

2023. 11. 19. 07:34

개념적으로 하나인 대상을 매핑하고 싶을 때 사용합니다. 예를 들어 객관식 문제는 질문과 보기로 구성되어 있는데 이때 질문과 보기를 두 테이블에 나눠서 저장할 수 있을 겁니다. 여기서 '객관식 문제'를 DB에 매핑할 때 보기를 콜렉션을 사용해서 매핑할 수 있습니다.