These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: hierachie de classes et proxy cglib
PostPosted: Tue Jan 30, 2007 3:43 am 
Newbie

Joined: Mon Jan 29, 2007 9:50 am
Posts: 7
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.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 20, 2007 3:56 am 
Expert
Expert

Joined: Thu Sep 04, 2003 8:23 am
Posts: 368
Le plus simple c'est de mettre pour ta classe lazy=false et tu pourras ainsi faire des casts normalement.
En règle générale je m'abstients de mettre des classes lazy lorsque j'ai un graphe d'héritage

_________________
Seb
(Please don't forget to give credits if you found this answer useful :)


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.