One to many association - Unir tabelas com coluna de chave não primária em JPA

Eu estou trabalhando no sistema legado, precisa ler algumas das informações do banco de dados. Abaixo está a relação da mesa

Fornecedor (vendorId - pk, vendorEid, nome)
VendorContactBridge (bridgeId -pk, vendorEid, contactEid)
Contato (contactId -pk, contactEid, phone)

O vendorEid e o contactEid não são a chave primária da tabela, mas são usados ​​como coluna de associação na tabela de associação do VendorContactBridge.

Entidade do Fornecedor -

@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;
}

Entidade de Contato -

@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;
 }

enquanto executa a consulta, ficando abaixo da exceção

SecondaryTable JoinColumn não pode referenciar uma chave não primária.

Eu removi a busca Eager que eu dei na entidade do fornecedor, eu não recebo qualquer exceção, mas não carrega a coleção. O que há de errado com associação?

questionAnswers(2)

yourAnswerToTheQuestion