Lösung 1
Erstellen Sie eine Datenbankansicht für Table1 die den Fremdschlüssel verfügbar macht, der auf Table2 verweist . Projizieren Sie den Fremdschlüssel aus Ihrer geposteten Abfrage, den Sie sowieso für die Ansicht verwenden. Ordnen Sie dann Ihre Entität der Ansicht zu.
Lösung 2
Verwenden Sie Join-Formel :
Zum Beispiel in der Entität, die Table1 zugeordnet ist Definieren Sie die Viele-zu-Eins-Verknüpfung mit der Entität, die Table2 zugeordnet ist (scheint Ihr Anwendungsfall zu sein):
@ManyToOne
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(example@sqldat.com(value="(SELECT t2.serial FROM Table2 t2 WHERE serial1 = t2.serial OR serial2 = t2.serial)", referencedColumnName="serial"))
})
private Entity2 entity2;
Join-Formeln scheinen jedoch im Moment in Hibernate sehr anfällig zu sein (ich habe es geschafft, dass dies nur für Viele-zu-Eins-Assoziationen funktioniert, und ich musste Entity2 erstellen Serializable implementieren; Andernfalls funktionierte es nicht und warf einige seltsame NullPointer- und ClassCastException s).