Bonjour,
j'ai mappé une table "ENTITE" sur une hiérarchie de classe :
AbstractEntite
|- Entite
|- Region
Le discriminant est la présence de la colonne "REGION", null pour Region et not null pour Entite (c'est une FK vers ENTITE elle meme).
Comme l'indique la doc hibernate, l'utilisation des proxy CGLib ne permet pas de faire un Cast ou un instanceOf sur une référence à AbstractEntite.
"
Cat cat = (Cat) session.load(Cat.class, id); // instancie un proxy (n'interroge pas la base de données)
if ( cat.isDomesticCat() ) { // interroge la base de données pour initialiser le proxy
DomesticCat dc = (DomesticCat) cat; // Erreur !
....
}
"
Comment construire l'équivalent de la méthode "isDomesticCat" ? Vu que l'attribut REGION n'est mappé que pour la classe Entite je ne peux me baser dessus depuis AbstractEntite.
|