Nemám bodovou pověst, kterou bych mohl komentovat, takže sem dám své komentáře:
Proč pole instalationPK není v instalation.class? Měli byste zadat @EmbeddedId
v poli installationPK v Installation.class.
Nevím, jestli to dělá rozdíly, ale vložte joinCollums do pole v BaseEntity
:
@OneToOne
@JoinColumns({
@JoinColumn(name = "site", referencedColumnName = "site"),
@JoinColumn(name = "structure", referencedColumnName = "structure")
})
private Installation installation;