Je n'ai pas de point de réputation à commenter donc je vais mettre ici mes commentaires :
Pourquoi le champ instalationPK n'est pas dans instalation.class ? ? Vous devez mettre @EmbeddedId
dans le champ installationPK dans Installation.class.
Je ne sais pas si cela fait des différences, mais mettez joinCollums sur le champ dans BaseEntity
:
@OneToOne
@JoinColumns({
@JoinColumn(name = "site", referencedColumnName = "site"),
@JoinColumn(name = "structure", referencedColumnName = "structure")
})
private Installation installation;