Nie mam reputacji punktowej do komentowania, więc zamieszczam tutaj moje komentarze:
Dlaczego pola installationPK nie ma w instalacji.class??Należy wpisać @EmbeddedId
w polu installationPK w Installation.class.
Nie robię różnic, ale wstawiam joinCollums na pole w BaseEntity
:
@OneToOne
@JoinColumns({
@JoinColumn(name = "site", referencedColumnName = "site"),
@JoinColumn(name = "structure", referencedColumnName = "structure")
})
private Installation installation;