inflearn logo
강의

Course

Instructor

Java ORM Standard JPA Programming - Basics

Inheritance Mapping

ManyToOne 관계 설정 시 궁금한 점이 있습니다.

310

benfsong11

5 asked

0

[질문 내용]
안녕하세요! 강의를 들으며 제 사이드 프로젝트의 데이터베이스를 설계하는 과정에서 궁금증이 생겨 질문드립니다.

 

저는 Content라는 엔티티 클래스를 만들고 이를 상속받는 Post, Comment 클래스를 만들었습니다.

 

Content라는 부모 엔티티 클래스를 만든 이유는 내용을 담는 body라는 필드를 Post와 Content가 동일하게 가지기 때문입니다. 후에 프로젝트가 커지면 image, link등과 같은 여러 필드들이 Content에 추가될 예정입니다.

 

이때 Post는 title 필드를 추가적으로 가지고 있고 Comment를 여러 개 가질 수 있는데, 일반적인 상황에서 동일한 엔티티 클래스를 상속받은 클래스끼리도 이러한 ManyToOne 관계를 가지게 설계하는지 궁금합니다.

java jpa spring db 데이터베이스

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요. 질문에 대한 답변을 드리겠습니다.

Content를 부모 엔티티로 두고 Post와 Comment를 상속받는 것은 일반적인 상황입니다. 여러 엔티티 클래스들이 공통으로 가지는 속성이 존재할 때, 상속 관계를 통해 중복을 피하고 코드의 재사용성을 높일 수 있습니다.

Many-to-One 관계는 부모 엔티티에 해당하는 여러 자식 엔티티가 하나의 부모 엔티티를 참조하는 관계입니다. Post 엔티티가 Content 엔티티를 참조하는 것이 일반적입니다. Comment 엔티티도 Content 엔티티를 참조할 수 있지만, 이는 프로젝트의 요구사항에 따라 다를 수 있습니다.

따라서, Post와 Comment 엔티티들이 Content 엔티티를 참조하는 Many-to-One 관계를 가질 수 있습니다. 이를 JPA 어노테이션으로 구현할 때는 @ManyToOne 어노테이션을 사용하면 됩니다.

위의 설계는 일반적인 방법이지만, 프로젝트의 구조 및 요구사항에 따라 상황에 맞게 설계하는 것이 가장 중요합니다. 필요한 속성들을 공통으로 가지는 부모 엔티티를 정의하고, 상속받는 자식 엔티티들을 구현하는 것은 효율적인 설계 방법일 수 있습니다.

추가적인 질문이 있으시면 언제든지 물어보세요. 좋은 결과를 이끌어낼 수 있도록 도와드릴게요!

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

0

41

1

H2데이터베이스 파일 생성

0

51

2

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

0

49

2

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

0

48

1

JPQL 메소드와 락

0

52

1

Delivery @OneToOne

0

57

1

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

0

89

2

UnsupportedOperationException 발생

0

82

3

H2 Database 연결이 안됩니다.

0

88

2

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

0

82

2

h2데이터베이스 실행오류

0

105

2

persistence.xml

0

103

2

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

0

77

1

영속성 컨텍스트

0

62

1

JPA 프록시

0

89

1

Native Query와 MyBatis

0

63

1

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

0

82

1

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

0

112

3

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

0

90

3

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

0

106

2

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

0

136

1

양방향 연관관계 시 연관관계 주인을 설정하는 이유

0

68

1

임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.

0

95

1

데이터베이스가 초기화되는 것 같아요

1

177

2