我正在原有系统上,需要阅读一些从数据库中的信息的。 下面是表关系
供应商(厂商ID - PK,vendorEid,名)
VendorContactBridge(bridgeId -pk,vendorEid,contactEid)
联系(使用ContactID -pk,contactEid,电话)
vendorEid和contactEid不是表的主键,但作为加入加入表VendorContactBridge列。
供应商实体 -
@Entity
@Table(name="Vendor")
public class Vendor implements Serializable{
@Id
@Column(name="VENDORID")
private BigDecimal vendorId;
@Column(name="VENDOREID")
private BigDecimal vendorEid;
@OneToMany(fetch = FetchType.EAGER)
@JoinTable(name="VENDORCONTACTBRIDGE",
joinColumns={@JoinColumn(name="VENDOREID", referencedColumnName="VENDOREID")},
inverseJoinColumns={@JoinColumn(name="CONTACTEID", referencedColumnName="CONTACTEID")})
private Set<Contact> vendorContact;
}
联系实体 -
@Entity
@Table(name="CONTACT")
public class Contact implements Serializable{
@Id
@Column(name="CONTACTID")
private BigDecimal contactId;
@Column(name="CONTATEID")
private BigDecimal contactEId;
@ManyToOne
@JoinTable(name="VENDORCONTACTBRIDGE",
joinColumns={@JoinColumn(name="CONTACTEID", referencedColumnName="CONTATEID")},
inverseJoinColumns={@JoinColumn(name="VENDOREID", referencedColumnName="VENDOREID")})
private Vendor vendor;
}
运行查询时,得到下面的异常
SecondaryTable JoinColumn不能引用非主键。
我删除了预先抓取我在供应商实体给了,我没有得到任何异常,但它不会加载集合。 这有什么错的关联?