Ich habe keinen guten Ruf, um etwas zu kommentieren, also schreibe ich hier meine Kommentare:
Warum ist das Installations-PK-Feld nicht in der Installations-Klasse? Sie sollten @EmbeddedId
eingeben im Feld installationPK in Installation.class.
Ich weiß nicht, ob es Unterschiede macht, aber setze joinCollums auf das Feld in BaseEntity
:
@OneToOne
@JoinColumns({
@JoinColumn(name = "site", referencedColumnName = "site"),
@JoinColumn(name = "structure", referencedColumnName = "structure")
})
private Installation installation;