-
proprieté class en HQL
Bonjour,
J'ai un problème assez étrange en faisant une requête HQL utilisant la propriété class d'un objet.
J'ai une classe Mere (@MappedSuperclass) et une classe Fille (@Entity)
ma requête:
Code:
from Mere m where (m.class='Fille' and m.numero=2)
Premier problème: Hibernate me dit que Mere n'est pas mappée (pourtant le mapping est bien declaré) : je remplace 'Mere' par 'org.hibernate.test.montest.Mere' et là hibernate ne me dit plus que la classe n'est pas mappée...
Deuxième problème:
Code:
org.hibernate.QueryException: could not resolve property: class of: org.hibernate.test.montest.Fille [from org.hibernate.test.montest.Fille m where (m.class='Fille' and m.numero=2)]
J'ai vu qu'il existait un bug sur la propriété .class lorsque l'on utilise le nom complet de la classe (org.hibernate.test.montest.Fille au lieu de Fille)... mais comment spécifier à hibernate que dans sa cuisine interne il ne doit pas utiliser de noms complets ?
Ya-t-il une stratégie d'héritage particulière pour employer cette proprieté ?
Bref... je patauge là :/ Merci de vos conseils si vous avez déjà utilisé ce mécanisme.
PS: désolé le noms de classe et de package sont bidons pour l'exemple
-
Personne n'utilise la propriété 'class' dans une requête HQL ?
(oui je sais c'est pô bien de faire remonter son sujet, mais je voudrais sûr que je passe pas à côté d'une évidence avant de tout recoder parce qu'hibernate n'arrive pas à faire ce qu'il est censé faire...)
-
N'as tu pas la possibilité de procéder autrement ?
Je me souviens avoir eu des problèmes avec .class, du coup, je ne m'en étais pas servi.
-
Ah, je suis pas le seul à avoir des problèmes alors ^^
Oki, dans ce cas je recode en procédant autrement et j'oublie cette fonctionnalité d'hibernate qui est "censée" marcher...
Merci pour ce retour d'expérience ;)
-
Dans mon cas, c'était avec la version 3.0.x.
Il y a peut-être moyen d'utiliser une colonne "discriminator-value".
http://www.hibernate.org/hib_docs/v3...-discriminator
A voir selon ton mappging.