Solution 1
Créer une vue de base de données sur la Table1
qui expose la clé étrangère référençant Table2
. Projetez la clé étrangère de votre requête publiée que vous utiliserez de toute façon pour la vue. Associez ensuite votre entité à la vue.
Solution 2
Utilisez formule de jointure :
Par exemple, dans l'entité mappée à Table1
définir l'association plusieurs-à-un avec l'entité mappée à Table2
(semble être votre cas d'utilisation):
@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;
Cependant, les formules de jointure semblent être très fragiles dans Hibernate pour le moment (j'ai réussi à faire fonctionner cela uniquement pour l'association plusieurs-à-un et j'ai dû faire Entity2
implémenter Serializable
; sinon cela n'a pas fonctionné et a jeté un étrange NullPointer-
et ClassCastException
s).