3
I 이러한 통계와 ManyToMany 협회에서 두 클래스를 매핑 다음 SQL이 관련 테이블 작성을 위해 생성JPA가 - 대다 연관 테이블의 하나의 외래 키가
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class TechnicalItem extends GenericBusinessObject implements Resumable{
@SequenceGenerator(name="TECHNICAL_ITEM_ID_GEN", sequenceName="TECHNICAL_ITEM_ID_SEQ")
@Id
@Column(name = "\"ID\"", nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TECHNICAL_ITEM_ID_GEN")
private int id;
@ManyToMany(mappedBy = "referencePerformanceItems", fetch=FetchType.LAZY)
private List<TestingRate> testingRates;
}
@Entity
@DiscriminatorValue("T")
public class TestingRate extends Rate {
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="ecc.\"TESTING_RATE_TECHNICAL_ITEM\"",
joinColumns = {@JoinColumn(name = "\"TESTING_RATE_ID\"")},
inverseJoinColumns = {@JoinColumn(name = "\"TECHNICAL_ITEM_ID\"")})
//@ManyToMany(mappedBy = "testingRates", fetch=FetchType.LAZY)
private List<TechnicalItem> referencePerformanceItems;
}
이다
create table ecc."TESTING_RATE_TECHNICAL_ITEM" (
"TESTING_RATE_ID" int4 not null,
"TECHNICAL_ITEM_ID" int4 not null
);
alter table ecc."TESTING_RATE_TECHNICAL_ITEM"
add constraint FKC5D64DF6A2FE2698
foreign key ("TESTING_RATE_ID")
references ecc."RATE";
두 번째 외래 키 "TECHNICAL_ITEM_ID"(연결 테이블에 있어야하는 복합 외래 키의 두 번째 부분)에 대한 언급이 없습니다. 정상적인 동작입니까? 2 열이 내 2 관련 테이블의 기본 키를 참조하는 2 개의 외래 키인 경우 매핑에서 무엇을해야합니까?
PostGreSQL 데이터베이스와 최대 절전 모드를 JPA 공급자로 사용합니다.
감사합니다. lexicore에게 "uniqueConstraint"매개 변수를 알지 못했습니다. 그러나 문제를 해결했습니다 : "TechnicalItem"에서 상속하는 "PerformanceItem"클래스가 아니라 많은 관계에 추상 클래스 "TechnicalItem"을 포함하려고했습니다. "uniqueconstraint"매개 변수가 없어도 2 개의 외래 키가 만들어집니다. 감사합니다. 어쨌든, 줄리앙 – Julien