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 :

langage hql et requete multi critere


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 20
    Points
    20
    Par défaut langage hql et requete multi critere
    bonjour

    je travail avec hibernate sur un projet

    je veux savoir comment je peux ecrire ma requete mon code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public static List list_document(EtatDocument etat, FamilleDocument famille) {
    	List documents=null;
    	Transaction tx = null;
    	Session session = HibernateSessionFactory.getInstance().getCurrentSession();
    	try {
    	tx = session.beginTransaction();
    	documents = session.createQuery("select h from Document as h where h.etat= :id_etat and h.famille= : id_famille_doc" ).setParameter("id_etat",etat).list();
    	for (Iterator iter = documents.iterator(); iter.hasNext();) {
     
    		Document element = (Document) iter.next();
    		System.out.print(element.getAuteurDoc()+ "\n");
    		}
    	tx.commit();
    	} catch (HibernateException e) {
    	e.printStackTrace();
    	if (tx != null && tx.isActive())
    	tx.rollback();
    	}
    	return documents;
    	}
    mon probeleme si que comment je peux passer deux objet avec leur type dans setParameter

    exactement à ce niveau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ("select h from Document as h where h.etat= :id_etat and h.famille= : id_famille_doc" ).setParameter("id_etat",etat).list();
    Merci pour l'aide

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Points : 57
    Points
    57
    Par défaut
    Personnellement je n'ai jamais utilisé la méthode setParameter. Je lui ai toujours préféré les méthodes setString, setLong, setDate, ...
    Tu peux en accumulé à volonté.

    Ca te donnerai quelquechose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Query query = session.createQuery("select h from Document as h where h.etat.clePrimaire= :id_etat and h.famille.clePrimaire= :id_famille_doc");
    query.setLong("id_etat", etat.getClePrimaire())
    query.setInteger("id_famille_doc", famille.getClePrimaire())
    documents = query.list();
    Sinon je pense qu'il existe aussi une méthode setParameterList mais je ne sais pas comment elle fonctionne ... (et j'arrive plus à ouvrir l'API Hibernate)

  3. #3
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben pourquoi pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ("select h from Document as h where h.etat= :id_etat and h.famille= : id_famille_doc" ).setParameter("id_etat",etat).setParameter("id_famille_doc",idFamilleDoc).list();
    ?

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    je veux signaler juste que le deuxieme argument de deuxieme setParameter est un objet de type FamilleDocument et pas un entier IdFamilleDoc

    l'erreur siganle est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
    	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301)
    	at $Proxy0.createQuery(Unknown Source)
    	at couche_web.Traitement.list_document(Traitement.java:556)
    	at test.TestExemple.main(TestExemple.java:39)
    comment je peux utiliser setParameterList

  5. #5
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Euh, ton exception là ya une cause non ?
    Effectivement, il faut passer un objet FamilleDoc et non un int ...

    setParameterList c'est pour quand un seul paramètre a plusieurs valeurs ... Ca ne s'applique pas dans ton cas.

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    et comment je peux proceder pour resoudre le probleme
    propose moi ton solution

  7. #7
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben je t'ai dit ce que je proposais ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ("select h from Document as h where h.etat= :id_etat and h.famille= : id_famille_doc" ).setParameter("id_etat",etat).setParameter("id_famille_doc",familleDoc).list();
    Mais tu m'as dit que tu avais une exception, mais tu n'as pas donné l'intégralité de l'erreur ...

  8. #8
    Débutant
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Points : 132
    Points
    132
    Par défaut
    d'accord je veux tester et je reviens. Merci pour l'aide

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 68
    Points : 116
    Points
    116
    Par défaut
    ... et il n'est jamais revenu...

Discussions similaires

  1. [AC-2003] Requete recherche multi-criteres
    Par olivier777 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/06/2010, 10h53
  2. Requete linq multi critere ?
    Par superkiller dans le forum Linq
    Réponses: 0
    Dernier message: 19/05/2010, 14h57
  3. [MySQL] requete multi-critere provenant d'un tableau
    Par nicolasferraris dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/03/2009, 09h36
  4. [SQL] Création de requête multi critères
    Par gojaru dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 29/11/2006, 09h50
  5. [MySQL] ecriture d'une requête multi-critères
    Par webdestination dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/08/2006, 11h34

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