Řešení 1
Vytvořte zobrazení databáze v Table1
který odhaluje odkazování na cizí klíč Table2
. Promítněte cizí klíč z vašeho zaslaného dotazu, který stejně použijete pro zobrazení. Poté namapujte svou entitu na zobrazení.
Řešení 2
Použijte vzorec spojení :
Například v entitě mapované na Table1
definujte přidružení typu many-to-one s entitou mapovanou do Table2
(zdá se, že je to váš případ použití):
@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;
Spojovací vzorce se však v Hibernate zatím zdají být velmi křehké (podařilo se mi, aby to fungovalo pouze pro mnohonásobnou asociaci a musel jsem vytvořit Entity2
implementovat Serializable
; jinak to nefungovalo a vyhodilo to nějaký divný NullPointer-
a ClassCastException
s).