수색…
비고
엔티티 간의 관계 기본 사항
외래 키 는 다른 테이블의 고유 키 (일반적으로 기본 키)를 참조하는 하나 이상의 열이 될 수 있습니다.
외래 키와 그것이 참조하는 기본 상위 키는 같은 수와 유형의 필드를 가져야합니다.
외래 키는 한 테이블의 열 또는 열과 다른 테이블의 열 또는 열 간의 관계 를 나타냅니다.
엔티티 관계의 다중성
엔티티 관계의 다중성
다중성은 다음 유형 중 하나입니다.
- 일대일 : 각 엔티티 인스턴스는 다른 엔티티의 단일 인스턴스와 관련됩니다.
- 일대 다 : 엔티티 인스턴스는 다른 엔티티의 여러 인스턴스와 관련 될 수 있습니다.
- 다 대일 (many-to-one) : 엔티티의 여러 인스턴스는 다른 엔티티의 단일 인스턴스와 관련 될 수 있습니다.
- 다 대다 : 엔티티 인스턴스는 서로의 여러 인스턴스와 관련 될 수 있습니다.
일대일 매핑
일대일 매핑은 일대일 다중성을 갖는 다른 엔티티에 대한 단일 값 연결을 정의합니다. 이 관계 매핑은 해당 영구 속성 또는 필드에서 @OneToOne
주석을 사용합니다.
예 : Vehicle
및 ParkingPlace
엔티티.
일대 다 매핑
엔티티 인스턴스는 다른 엔티티의 여러 인스턴스와 관련 될 수 있습니다.
일대 다 관계는 해당 영구 속성 또는 필드에서 @OneToMany
주석을 사용합니다.
mappedBy
요소는 해당 엔티티의 ManyToOne에 의해 주석이 추가 된 속성을 참조하는 데 필요합니다.
@OneToMany(mappedBy="attribute")
일대 다 연관은 엔티티 컬렉션을 매핑해야합니다.
다 대일 매핑
다 대일 매핑은 @ManyToOne
어노테이션으로 소스 엔티티의 속성 (대상 엔티티를 참조하는 속성)에 주석을 달아 정의됩니다.
@JoinColumn(name="FK_name")
주석은 관계의 foreing key를 나타냅니다.
다 대다 매핑
엔티티 인스턴스는 서로의 여러 인스턴스와 관련 될 수 있습니다.
다 대다 관계는 해당 영구 속성 또는 필드에서 @ManyToMany
주석을 사용합니다.
세 번째 테이블을 사용하여 두 엔티티 유형 (조인 테이블)을 연결해야합니다.
@JoinTable 주석 예제
JPA에서 다 대다 관계를 매핑 할 때 @JoinTable
주석을 사용하여 조인 외래 키에 사용되는 테이블에 대한 구성을 제공 할 수 있습니다.
@Entity
public class EntityA {
@Id
@Column(name="id")
private long id;
[...]
@ManyToMany
@JoinTable(name="table_join_A_B",
joinColumns=@JoinColumn(name="id_A"), referencedColumnName="id"
inverseJoinColumns=@JoinColumn(name="id_B", referencedColumnName="id"))
private List<EntityB> entitiesB;
[...]
}
@Entity
public class EntityB {
@Id
@Column(name="id")
private long id;
[...]
}
entitiesB
필드에 의해 구현 된 EntityB에 대해 다 대다 관계를 갖는 EntityA로 구성된이 예에서 @JoinTable 주석을 사용하여 조인 테이블의 테이블 이름이 table_join_A_B
이고 id_A
및 id_B
, 각각 EntityA의 테이블과 EntityB의 테이블에있는 컬럼 id
를 참조하는 외래 키. (id_A,id_B)
는 table_join_A_B
테이블의 복합 기본 키가 table_join_A_B
.