Løsning 1
Opret en databasevisning på Table1
som afslører udenlandsk nøgle, der henviser til Table2
. Projicér fremmednøglen fra din postede forespørgsel, som du alligevel vil bruge til visningen. Tilknyt derefter din enhed til visningen.
Løsning 2
Brug deltagelsesformlen :
For eksempel i den enhed, der er knyttet til Table1
definere mange-til-en-tilknytningen med den enhed, der er knyttet til Table2
(synes at være din use case):
@ManyToOne
@JoinColumnsOrFormulas({
@JoinColumnOrFormula([email protected](value="(SELECT t2.serial FROM Table2 t2 WHERE serial1 = t2.serial OR serial2 = t2.serial)", referencedColumnName="serial"))
})
private Entity2 entity2;
Tilmeldingsformler ser dog ud til at være meget skrøbelige i Hibernate for tiden (det lykkedes mig at få dette til kun at fungere for mange-til-en-forbindelse, og jeg var nødt til at lave Entity2
implementer Serializable
; ellers virkede det ikke og kastede nogle mærkelige NullPointer-
og ClassCastException
s).