Oplossing 1
Maak een databaseweergave op de Table1
die refereert naar een refererende sleutel die verwijst naar Table2
. Projecteer de externe sleutel van uw geposte query die u toch voor de weergave zult gebruiken. Wijs vervolgens uw entiteit toe aan de weergave.
Oplossing 2
Gebruik join-formule :
Bijvoorbeeld in de entiteit die is toegewezen aan Table1
definieer de veel-op-een associatie met de entiteit die is toegewezen aan Table2
(lijkt jouw gebruiksscenario te zijn):
@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;
Echter, join-formules lijken voorlopig erg kwetsbaar in Hibernate (ik slaagde erin om dit alleen te laten werken voor veel-op-een associaties en ik moest Entity2
maken implementeer Serializable
; anders werkte het niet en gooide een vreemde NullPointer-
en ClassCastException
s).