inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

양방향 연관관계와 연관관계의 주인 2 - 주의점, 정리

엔티티와 컬럼 생성 기준

406

dongjoo

작성한 질문수 6

1

안녕하세요. 연관관계 주인이 아닌 List로 구현된 members에서 궁금한 점이 있습니다.

먼저 지금까지 이해한 바로는, @Entity 애노테이션과 ddl-auto 속성에 의해서 @Entity를 가진 클래스의 필드들이 해당 테이블의 attribute로 만들어지는 것으로 이해했습니다.

1. @Column이 DB 테이블의 실제 컬럼 이름과 매핑을 짓는 용도라고 이해했는데 @Column을 생략해도 DB상에 해당 컬럼이 생성된 것을 확인했습니다. 이 경우, 컬럼은 생성됐지만 매핑은 이루어지지 않은건가요?

2. Team 클래스의 members 어레이리스트는 Team 테이블의 attribute로 등록되지 않는 이유가 뭔가요? 물론, 데이터베이스 상에서 하나의 attribute에 하나의 값을 가져야 하는건 맞지만 이게 컬렉션으로 구현된 필드는 JPA에서 자동으로 attribute이 아니라고 인식하는 건가요?

@Entity java @Column ddl JPA 컬렉션

답변 1

0

David

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

1. @Column을 명시하고 name 속성에 값을 주면 해당 값이 생성되는 칼럼명이 됩니다. 만약 자동으로 생성되는 칼럼명을 쓰고 싶다면 @Column을 생략하셔도 됩니다.

2. 해당 강의 초반부(4분 이전)를 참고하시면 설명하시는데, Team의 members는 연관관계의 주인이 아닌 엔티티에 읽기전용으로 사용되며 JPA는 members를 참고하여 칼럼을 생성하지 않습니다. Member의 Team을 보고 연관관계의 키가 되는 칼럼을 생성합니다.

.
감사합니다.

0

dongjoo

답변 감사합니다!

2번 질문에서 추가 질문해도 될까요??

JPA가 members를 참고하여 컬럼을 생성하지 않는다고 하셨는데 정확히 어떤 걸 참고하는 건가요? @xxxToMany에 의한건지, mappedBy에 의한건지 이해가 잘 안됩니다..

0

David

위에 설명드렸듯이

연관관계의 주인인 Member의 Team을 참고합니다

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

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

87

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