인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

전한준님의 프로필 이미지
전한준

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

값 타입 컬렉션

@ElementCollection , @CollectionTable 의 사용예시

작성

·

108

0

이해가 명확하게 된게 맞는지 @ElementCollection은 임베디드 타입에 관해 쓰이거나 그냥 일반 좋아하는 음식 기본형을 저장할 때 쓰이고, @CollectionTable 은 이러한 것에 과한 테이블을 만들고@ joinColumn 은 어떤 것과 매핑이 되는지 @Column(name="FOOD_NAME")은 그것에 관해 연결되어야 할 것을 정해주는 게 맞는건가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 전한준님!

JPA에서 @ElementCollection@CollectionTable의 사용 예시에 대해 설명드리겠습니다.

  1. @ElementCollection: 이 어노테이션은 엔티티 클래스가 아닌 값 타입을 컬렉션으로 저장할 때 사용합니다. 예를 들어, 좋아하는 음식 리스트와 같은 기본형 데이터(값 타입)를 저장하는 데 유용합니다. 이를 통해 간단한 표준 SQL 테이블에 값을 쉽게 저장하고 조회할 수 있습니다.

  2. @CollectionTable: 이 어노테이션은 @ElementCollection이 적용된 컬렉션 데이터를 저장할 테이블을 정의하는 데 사용됩니다. 여기서 테이블 이름을 지정하고, 해당 테이블이 어떤 엔티티와 엮일지를 설정할 수 있습니다.

  3. @JoinColumn: @CollectionTable과 함께 사용되며, 부모 테이블(즉, 소유하고 있는 엔티티)과 자식 테이블(컬렉션 테이블) 간의 매핑을 설정합니다. 일반적으로 부모 테이블의 기본 키와 컬렉션 테이블의 외래 키를 연결하는 역할을 합니다.

  4. @Column: 컬렉션 테이블 내 특정 컬럼의 이름을 지정하는 역할을 합니다. 예를 들어 음식 이름을 저장하는 컬럼의 이름을 “FOOD_NAME”으로 지정하면, 값이 해당 컬럼에 저장됩니다.

관련된 질문과 답변을 더 확인하고 싶으시다면 아래 링크를 참조하세요:

질문자님의 이해에 도움이 되었으면 좋겠습니다. 추가적인 궁금한 점이 있으시면, 이어서 질문해 주세요. 지식공유자께서도 곧 상세한 답변을 드릴 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

전한준님의 프로필 이미지
전한준

작성한 질문수

질문하기