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 :

Association avec Criteria


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lamis2009
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut Association avec Criteria
    Bonjour,

    j'ai deux tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Article(numArticle,libelle)
    Stocker(id,numArticle,date)
    j ai besoin de faire une recherche dans la table stocker mais en prendre en consideration le champ libelle de la table article
    cad je veux recuperer les articles stockés qui ont un libelle contenant une certaine chaine "xxx"

    D'habitude je travail sur une seule table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Criteria criteria=session.createCriteria(Stocker.class);
    		 criteria.add(Restrictions.eq("date",date));
     Criteria criteria2=session.createCriteria(Article.class);
    		 criteria2.add(Restrictions.eq("libelle",libelle));
    Mais j'ai besoin de faire la liaison entre les deux table(numArticle soit le meme)

    Merci d'avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Essaie ça et regarde la doc à ce sujet :
    http://docs.jboss.org/hibernate/stab...a-associations

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Criteria criteria=session.createCriteria(Stocker.class).add(Restrictions.eq("date",date)).createCriteria("article").add(Restrictions.eq("libelle",libelle));
    Pour peu que article soit l'attribut de ta classe Stocker mais comme tu ne donnes pas ton mapping...

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu peux faire directement référence à la propriété fille dans ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Criteria criteria = session.createCriteria(Stocker.class);
    criteria.add(Restrictions.eq("article.libelle",libelle));
    Il faudra peut-être ajouter un alias (criteria.createAlias(..., ...))
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé Avatar de lamis2009
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut
    j'utilise le portail liferay et j'ai essayé vos solution mais ça m'a declenché cette exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.hibernate.QueryException: could not resolve property: Article of: com.ext.portlet.login.model.impl.StockerImpl

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Donne nous ton mappgin, on ne peut pas inventer le nom de ta propriété qui mappe ta table article.

  6. #6
    Membre confirmé Avatar de lamis2009
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut
    le mapping est declaré dans le fichier service.xml, voila le fichier et les noms des proprietes sont les memes des colonnes des tables:
    Article(numArticle,libelle)
    Stocker(id,numArticle,date)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <entity name="Stocker" local-service="true">
            <column name="id" type="String" primary="true" />
            <column name="numArticle" type="String" />        
            <column name="date" type="Date" />
    </entity> 
    <entity name="Article" local-service="true">        
            <column name="numArticle" type="String" primary="true" />        
            <column name="libelle" type="String" />      
    </entity>

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/01/2013, 11h16
  2. [Liferay] Exception lors d'utilisation des associations avec criteria
    Par lamis2009 dans le forum Portails
    Réponses: 0
    Dernier message: 17/06/2010, 18h09
  3. probleme avec le mapping d'association avec hibernate
    Par senediene dans le forum Hibernate
    Réponses: 2
    Dernier message: 10/08/2006, 13h59
  4. Association avec données réalisant 2e association
    Par Matth_S dans le forum Schéma
    Réponses: 4
    Dernier message: 10/02/2006, 12h55
  5. [JSTL] Association avec le jar ?
    Par MicroPuce dans le forum Taglibs
    Réponses: 5
    Dernier message: 07/01/2006, 14h49

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