Ändra detta:
@OneToMany(mappedBy = "providertype")
private Set<HL7DocumentEntity> documententities;
Till detta:
@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "Link_Documents", joinColumns = {@JoinColumn(name = "codePk", unique = true)}, inverseJoinColumns = {@JoinColumn(name = "change_this_with_primary_key_variable_name_from_HL7DocumentEntity")})
private Set<HL7DocumentEntity> documententities;
Och i HL7DocumentEntity ändras enligt följande:
Detta
@ManyToOne
@JoinColumns({ @JoinColumn(name = "ptcode", referencedColumnName = "code"),
@JoinColumn(name = "ptcodesystem", referencedColumnName = "codesystem")
})
private HL7GeneralCode providertype;
Ändra till detta:
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name = "Link_Documents", joinColumns = {@JoinColumn(name = "change_this_with_primary_key_variable_name_from_HL7DocumentEntity")}, inverseJoinColumns = {@JoinColumn(name = "codePk")})
private HL7GeneralCode providertype;
Jag tror att du måste ändra "change_this_with_primary_key_variable_name_from_HL7DocumentEntity" med "id" som det är i BaseEntity men ta en titt på din sql-tabell, du kommer att se det korrekta namnet där.
Jag hoppas att du märker hur jag sa åt JPA att använda samma "Link_Documents"-tabell för att länka de två tabellerna. Jag tror att det här är ditt misstag. Se bara till att ändra var jag sa till dig med rätt variabelnamn så tycker jag att det borde fungera