OVH Cloud OVH Cloud

Hibernate : pb cast

4 réponses
Avatar
Christophe Puaud
Bonjour,

je récupère des éléments provenant de plusieurs tables (Oracle 9.2) avec
Hibernate (un results.size() me donne le bon nombre) mais je n'arrive pas à
récupérer les données elles mêmes. Lorsque je fais un cast (
(MonBean)results.get(0) ) j'obtient un "java.lang.ClassCastException" bien
que "MonBean" contienne les variables correspondant au résultat de la
requête.
Merci pour vos réponses.


Christophe

4 réponses

Avatar
Vincent Cantin
Bonjour,

je récupère des éléments provenant de plusieurs tables (Oracle 9.2) avec
Hibernate (un results.size() me donne le bon nombre) mais je n'arrive pas
à

récupérer les données elles mêmes. Lorsque je fais un cast (
(MonBean)results.get(0) ) j'obtient un "java.lang.ClassCastException" bien
que "MonBean" contienne les variables correspondant au résultat de la
requête.
Merci pour vos réponses.

Christophe


Cela veut dire que l'objet renvoye par results.get(0) n'est pas du type
MonBean.
La class MonBean aura beau contenir les memes variables, si le type est
different, le cast ne peut etre fait.

Ne pas confondre java et C.
Je te conseille d'aller voir la documentation pour connaitre le type
retourne par results.get(0) et ainsi le caster (si besoin) dans le bon type.

Vincent

Avatar
Christophe Puaud
la méthode get de results (qui est une List) renvoie un Object. Il me semble
donc que j'ai besoin de "caster" le résultat pour obtenir les données.
Existe-t-il une autre solution ?


"Vincent Cantin" a écrit

Cela veut dire que l'objet renvoye par results.get(0) n'est pas du type
MonBean.
La class MonBean aura beau contenir les memes variables, si le type est
different, le cast ne peut etre fait.

Ne pas confondre java et C.
Je te conseille d'aller voir la documentation pour connaitre le type
retourne par results.get(0) et ainsi le caster (si besoin) dans le bon
type.


Vincent




Avatar
Christophe Puaud
J'ai trouvé comment faire. Dans la requete je met : select new MonBean
(var1, var2)...

"Christophe Puaud" a écrit dans le message
de news:ch1hcr$735$
Bonjour,

je récupère des éléments provenant de plusieurs tables (Oracle 9.2) avec
Hibernate (un results.size() me donne le bon nombre) mais je n'arrive pas
à

récupérer les données elles mêmes. Lorsque je fais un cast (
(MonBean)results.get(0) ) j'obtient un "java.lang.ClassCastException" bien
que "MonBean" contienne les variables correspondant au résultat de la
requête.
Merci pour vos réponses.


Christophe





Avatar
YSMAL Vincent
Bonjour,
si vous n'etes pas sur du retour, pensez à faire :

if (results.get(0) instance of MonBean)
{
uneInstMonBean = (MonBean)results.get(0);
}
else
{
System.err.println("Impossible de cater : " +
results.get(0).getClass().getName());
}

...
A part ca , je ne connais pas hibernate donc je ne peux pas en dire plus.
Bon courage

"Christophe Puaud" a écrit dans le message
de news:ch1hcr$735$
Bonjour,

je récupère des éléments provenant de plusieurs tables (Oracle 9.2) avec
Hibernate (un results.size() me donne le bon nombre) mais je n'arrive pas
à

récupérer les données elles mêmes. Lorsque je fais un cast (
(MonBean)results.get(0) ) j'obtient un "java.lang.ClassCastException" bien
que "MonBean" contienne les variables correspondant au résultat de la
requête.
Merci pour vos réponses.


Christophe