JPA 2/Hibernate에서 작동하는 합성 기본 키와 외래 키를 가져 오는 데 문제가 있습니다.JPA 2 - 합성 기본 키의 한 필드 만 포함하는 외래 키?
나라 법인 :
@Entity
@Table(name = "country")
public class Country extends DomainObjectBase implements Serializable {
@Id
@Basic(optional = false)
@Column(name = "code")
private String code;
@Basic(optional = false)
@Column(name = "name")
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "country")
private List<Province> provinces;
}
주 기본 키 :
@Embeddable
public class ProvincePK implements Serializable {
@Basic(optional = false)
@Column(name = "code")
private String code;
@Basic(optional = false)
@Column(name = "country_code")
private String countryCode;
}
지방 법인 :
@Entity
@Table(name = "province")
public class Province extends DomainObjectBase implements Serializable {
@EmbeddedId
protected ProvincePK provincePK;
@Basic(optional = false)
@Column(name = "name")
private String name;
@MapsId("country_code")
@JoinColumn(name = "country_code", referencedColumnName = "code", insertable = false, updatable = false)
@ManyToOne(optional = false)
private Country country;
}
이를 나는 국가와 지방 간단한 시나리오를 만들려고 해요 단 하나의 예외를 제외하고 나를 위해 올바른 테이블을 만드십시오 :
나라 테이블 :
- 코드 PK
- 이름
지방 표
- 코드 PK FK - 문제는가에 대한 외래 키 참조를 만드는 곳 이입니다 컨트리 테이블의 코드 열
- coun try_code FK 이것은 내가 원하는 스키마를 생성하는 최대 절전 모드에 대한
가 어떻게 내 개체를 매핑 할 이름/복합 키를 원하는 유일한 외래 키 참조입니까? 해당 국가에 지방 코드가 포함되어 있기 때문에 지금은 지방에 어떤 데이터도 삽입 할 수 없습니다!
도움 주셔서 감사합니다.