Powiązanie jeden do wielu - Połącz tabele z kolumną z kluczem innym niż podstawowy w JPA

Pracuję nad starszym systemem, muszę przeczytać niektóre informacje z bazy danych. Poniżej przedstawiono relację tabeli

Dostawca (vendorId - pk, vendorEid, nazwa)
VendorContactBridge (bridgeId -pk, vendorEid, contactEid)
Kontakt (contactId -pk, contactEid, telefon)

vendorEid i contactEid nie są kluczem podstawowym tabeli, ale są używane jako kolumna łącząca w tabeli Join VendorContactBridge.

Podmiot dostawcy -

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

Skontaktuj się z podmiotem -

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

podczas uruchamiania zapytania, uzyskiwanie poniżej wyjątku

SecondaryTable JoinColumn nie może odwoływać się do klucza innego niż podstawowy.

Usunąłem Eager Fetch, który podałem w encji Vendor, nie otrzymuję żadnego wyjątku, ale nie ładuję kolekcji. Co jest nie tak ze stowarzyszeniem?

questionAnswers(2)

yourAnswerToTheQuestion