@OneToMany와 @ElementCollection의 차이점은 무엇입니까?
둘 다 일대 다 관계에서 작동하기 때문에 a @OneToMany
와 @ElementCollection
주석을 사용하는 것의 차이점은 무엇입니까 ?
저는 믿습니다 @ElementCollection
주로하면서 (임베드 또는 기본) 이외의 엔티티를 매핑하기위한 @OneToMany
엔티티를 매핑하는 데 사용됩니다. 어떤 것을 사용할 것인지는 달성하고자하는 것에 달려 있습니다.
ElementCollection
는 표준 JPA 주석이며, 이제 독점 Hibernate 주석보다 선호됩니다 CollectionOfElements
.
컬렉션이 엔터티의 컬렉션이 아니라 간단한 형식 (문자열 등)의 컬렉션 또는 포함 가능한 요소의 컬렉션 (으로 주석이 달린 클래스 @Embeddable
)을 의미합니다.
또한 요소가 포함 된 엔티티에 의해 완전히 소유됨을 의미합니다. 엔티티가 수정 될 때 수정되거나 엔티티가 삭제 될 때 삭제되는 등의 요소입니다. 자체 라이프 사이클을 가질 수 없습니다.
@ElementCollection
단순 또는 내장 유형으로 일대 다 관계를 구현하려는 경우 코드를 단순화 할 수 있습니다. 예를 들어 JPA 1.0에서는의 목록과 일대 다 관계를 원할 때 기본 키와 해당 키만 포함 String
하는 간단한 엔티티 POJO ( StringWrapper
) 를 만들어야했습니다 String
.
@OneToMany
private Collection<StringWrapper> strings;
//...
public class StringWrapper {
@Id
private int id;
private String string;
}
JPA 2.0을 사용하면 다음과 같이 간단히 작성할 수 있습니다.
@ElementCollection
private Collection<String> strings;
더 간단하지 않습니까? @CollectionTable
주석을 사용하여 테이블 및 열 이름을 계속 제어 할 수 있습니다 .
또한보십시오:
기본 또는 포함 : @ElementCollection
엔티티 : @OneToMany 또는 @ManyToMany
@ElementCollection :
- 관계는 관계가 정의 된 엔티티에 의해 관리됩니다 (전용).
- 표에는 소유 엔티티에 대한 id 참조와 기본 또는 포함 된 속성이 포함됩니다.
@OneToMany / @ManyToMany :
- 다른 엔티티에 의해 관리 될 수도 있습니다
- 결합 테이블 또는 열에는 일반적으로 ID 참조 만 포함됩니다.
@ElementCollection
컬렉션을 표시합니다. 이것이 반드시이 콜렉션이 1-n 결합을 참조한다는 것을 의미하지는 않습니다.
ElementCollection은 맵핑에 대한 맵핑 또는 테이블을 대체 할 수 있으므로 여러 엔티티가 동일한 Embeddable 클래스를 참조하도록 할 수 있지만 각각의 종속 오브젝트를 별도의 테이블에 저장하도록 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/8969059/difference-between-onetomany-and-elementcollection
'Programing' 카테고리의 다른 글
"print"를 사용할 때 잘못된 구문? (0) | 2020.08.05 |
---|---|
jQuery로 선택 옵션의 레이블을 얻는 방법은 무엇입니까? (0) | 2020.08.05 |
일반 영어의 최종 일관성 (0) | 2020.08.04 |
노드에서 줄 바꿈 ( '\ n')으로 문자열을 나누는 방법은 무엇입니까? (0) | 2020.08.04 |
터미널에서 스위프트를 어떻게 사용합니까? (0) | 2020.08.04 |