Связь один ко многим - объединение таблиц со столбцом без первичного ключа в JPA
Я работаю на устаревшей системе, необходимо прочитать некоторую информацию из базы данных. Ниже приведены таблицы отношений
Vendor (vendorId - pk, vendorEid, имя)
VendorContactBridge (bridgeId -pk, vendorEid, contactEid)
Контакт (contactId -pk, contactEid, телефон)
vendorEid и contactEid не являются первичным ключом таблицы, но используются в качестве столбца соединения в соединительной таблице VendorContactBridge.
Поставщик Entity -
@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 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 не может ссылаться на не первичный ключ.
Я удалил Eager, который я дал в Vendor entity, я не получаю никаких исключений, но это незагрузить коллекцию. Какие'не так с ассоциацией?