수색…


비고

엔티티 간의 관계 기본 사항

외래 키 는 다른 테이블의 고유 키 (일반적으로 기본 키)를 참조하는 하나 이상의 열이 될 수 있습니다.

외래 키와 그것이 참조하는 기본 상위 키는 같은 수와 유형의 필드를 가져야합니다.

외래 키는 한 테이블의 열 또는 열과 다른 테이블의 열 또는 열 간의 관계 를 나타냅니다.

엔티티 관계의 다중성

엔티티 관계의 다중성

다중성은 다음 유형 중 하나입니다.

  • 일대일 : 각 엔티티 인스턴스는 다른 엔티티의 단일 인스턴스와 관련됩니다.
  • 일대 다 : 엔티티 인스턴스는 다른 엔티티의 여러 인스턴스와 관련 될 수 있습니다.
  • 다 대일 (many-to-one) : 엔티티의 여러 인스턴스는 다른 엔티티의 단일 인스턴스와 관련 될 수 있습니다.
  • 다 대다 : 엔티티 인스턴스는 서로의 여러 인스턴스와 관련 될 수 있습니다.

일대일 매핑

일대일 매핑은 일대일 다중성을 갖는 다른 엔티티에 대한 단일 값 연결을 정의합니다. 이 관계 매핑은 해당 영구 속성 또는 필드에서 @OneToOne 주석을 사용합니다.

예 : VehicleParkingPlace 엔티티.

일대 다 매핑

엔티티 인스턴스는 다른 엔티티의 여러 인스턴스와 관련 될 수 있습니다.

일대 다 관계는 해당 영구 속성 또는 필드에서 @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_Aid_B , 각각 EntityA의 테이블과 EntityB의 테이블에있는 컬럼 id 를 참조하는 외래 키. (id_A,id_B)table_join_A_B 테이블의 복합 기본 키가 table_join_A_B .



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow