inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Enum 리스트를 위한 엔티티를 만드는 방식이 궁금합니다.

281

clap-0

작성한 질문수 1

0

엔티티에 Enum 클래스의 리스트를 포함시키려고 합니다.

예를 들어서 Person이라는 엔티티가 Hobby라는 Enum 클래스의 리스트를 가질 때,
PersonHobby라는 엔티티를 만들고 그 안에 Hobby를 적용시켜서 두 엔티티 사이의 연관관계를 만들려고 합니다.

이 때, Person엔티티와 PersonHobby엔티티는 일대다 관계로 만드는 게 맞을까요? 다대다 관계로 만드는 게 맞을까요?

하나의 동일한 취미를 여러 사람이 가질 수 있으니 다대다 관계일 수도 있다고 생각되는데, 이전에 값 타입 컬렉션 영상에서는 이러한 상황에서 일대다를 권장한다고 했기 때문에 헷갈려서 질문을 남깁니다.

java jpa

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

Person 엔티티와 Hobby 엔티티 간의 관계를 정의하는 방법에 대해서 질문하셨는데요. 다대다 관계와 일대다 관계 중 어떤 것을 선택해야 할지 고민하시는 것 같습니다.

보통 다대다 관계는 중간에 연결 테이블을 생성하여 매핑하는 방식을 사용합니다. 하지만 많은 경우 중간 테이블에 추가 정보를 저장해야 할 때가 있는데, 예를 들어 PersonHobby 엔티티에 추가적인 필드가 필요하다면 일대다 관계를 사용하는 것이 적합합니다.

따라서, 하나의 Person 엔티티가 여러 개의 Hobby를 가질 수 있다면, 일대다 관계로 만드는 것이 적절할 것입니다. Person 엔티티에 Hobby 엔티티 리스트를 추가하고, PersonHobby 엔티티를 별도로 생성할 필요는 없을 것 같습니다.

일대다 관계로 만들기 위해서는 Person 엔티티에 @OneToMany 어노테이션을 사용하여 Hobby 엔티티의 리스트를 추가해주면 됩니다. 이렇게 하면 하나의 Person 엔티티는 여러 개의 Hobby를 가질 수 있습니다.

혹시 더 자세한 구현 방법이 필요하시다면, 프레임워크나 언어에 따라 다를 수 있으니 개발하시는 환경에 맞는 문서나 가이드를 참고하시면 도움이 될 것입니다. 감사합니다!

0

clap-0

감사합니다!!

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

21

2

inheritance startegy 선택시 고려사항

0

21

1

Entity 동등성 비교

0

18

1

실무 조언 관련 질문입니다.

0

44

1

H2데이터베이스 파일 생성

0

56

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

52

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

51

1

JPQL 메소드와 락

0

55

1

Delivery @OneToOne

0

60

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

92

2

UnsupportedOperationException 발생

0

85

3

H2 Database 연결이 안됩니다.

0

92

2

연관관계 매핑 질문드립니다.

0

85

2

h2데이터베이스 실행오류

0

107

2

persistence.xml

0

106

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

80

1

영속성 컨텍스트

0

65

1

JPA 프록시

0

94

1

Native Query와 MyBatis

0

67

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

85

1

임베디드 타입 예시 코드 관련 질문

0

114

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

94

3

인텔리제이 패키지 커서 단축키 질문

0

108

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

143

1