Non ho punti reputazione per commentare, quindi metto qui i miei commenti:
Perché il campo instalationPK non è in instalation.class?? Dovresti inserire @EmbeddedId
nel campo installationPK in Installation.class.
Non se fa differenze, ma metti joinCollums nel campo in BaseEntity
:
@OneToOne
@JoinColumns({
@JoinColumn(name = "site", referencedColumnName = "site"),
@JoinColumn(name = "structure", referencedColumnName = "structure")
})
private Installation installation;