IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

QueryException : class not found [HQL]


Sujet :

Hibernate Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 27
    Points : 36
    Points
    36
    Par défaut QueryException : class not found
    Bonjour à tous !

    J'ai un problème un peu particulier.
    J'ai besoin de sélectionner différentes colonnes de différentes tables,
    et je ne veux pas ramener toutes les colonnes de toutes les tables (le poids des données remontées seraient vite énorme).

    Je ne veux pas non plus ramener les colonnes comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select p.name, p.firstname from person p ....
    Je trouve en effet que les résultats sont ensuite difficiles à exploiter.

    En farfouillant sur le web je suis tombée sur une solution qui pourrait me convenir à merveille, mais que je n'arrive pour l'instant pas à faire fonctionner.
    L'idée est de créer une classe ResultHolder qui contient tous les champs que je veux ramener.
    Je l'utilise comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select new ResultHolder(p) from person p ...
    Pensez vous que cette solution peut fonctionner ? Avez vous déjà instancié une classe (non mappée) dans une requête HQL ?

    Pour l'instant je récupère une QueryException : class not found: ResultHolder
    J'espère que cela peut fonctionner... je n'aimerais pas du tout revenir à ma solution précédente !

    Merci d'avance pour votre aide !
    Fedodo

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 27
    Points : 36
    Points
    36
    Par défaut
    En fait je viens de trouver un vieux post qui relate exactement le même problème que le mien... Au cas où je n'ai pas été claire dans mes propos.

    ici

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Il y a un exemple dans la doc hibernate

    http://docs.jboss.org/hibernate/core...ueryhql-select

    Mais ça ne résoud pas ton problème. Soit tu passe des Person à ton constructeur pour le Holder, et alors tu ramène tout, soit tu énumère la liste des colonne que tu passe au constructeur, et alors tu retombe dans l'énumération.

    Si vous ne voulez pas toutes les colonnes, il faudra bien passer par l'énumération de celles que vous voulez garder

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 27
    Points : 36
    Points
    36
    Par défaut
    Tout d'abord merci pour ta réponse !

    J'avais bien vu cet exemple et je pense l'appliquer correctement : j'ai créer ma classe ResultHolder avec un constructeur qui prend en argument une variable de type Person.

    Je n'ai pas précisé que les tables sur lesquelles je requête n'ont pas toutes des colonnes que je veux récupérer, certaines me servent juste à filtrer.

    Par exemple, je souhaite avoir l'identité des personnes (nom, prénom....) qui ont un chien de la race labrador (information provenant d'une table chien).
    En utilisant cette méthode je remonterais donc toutes les colonnes des tables qui m’intéressent. Comme la majorité des tables ne seront là que pour filtrer je pense que c'est la meilleure solution.

    Cependant j'ai toujours mon erreur "class not found", et n'arrive pas à savoir d'où elle provient : j'ai bien ajout l'import de ma classe ResultHolder là où je m'en sers.
    De plus cette erreur me vient directement d'hibernate donc je me demande si je dois y faire référence dans mon fichier de configuration hibernate.
    Mais étant donnée que cette classe ne correspond à aucune table je ne peux pas lui associer un fichier de mapping !

    Bref je suis un peu perdue et à cours d'idées !

    Fedodo

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    comme hibernate ne connais pas cette classe (pas mappée), je pense que vous devez donner le nom complet dans la requete (new com.company.project.RequestHolder.....)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 27
    Points : 36
    Points
    36
    Par défaut
    En effet... problème résolu !
    Merci beaucoup (j'ai un peu honte de ne pas y avoir pensé quand même)

    Fedodo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JDBC][MYSQL] class not found.
    Par hellboy dans le forum JDBC
    Réponses: 2
    Dernier message: 09/10/2006, 21h22
  2. Class not found
    Par khamed dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 24/07/2006, 09h22
  3. [HIBERNATE] Conf et classe not found
    Par djodjo dans le forum Hibernate
    Réponses: 2
    Dernier message: 10/05/2006, 16h37
  4. [JSF] JspServlet class not found
    Par anitshka dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 22/07/2005, 10h44
  5. [EJB Session] class not found exception ?
    Par champion dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 11/02/2005, 23h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo