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 :

Critéria sur plusier couches [FAQ]


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 62
    Points
    62
    Par défaut Critéria sur plusier couches
    Bonjour je souhaite faire une critéria sur plusieurs couche

    c'est à dire je suis dans un sous Groupe et je souhaite récupéré la nationalité qui ce trouve dans le groupe mère

    voici le code de construction de la base
    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
     
    <joined-subclass name="dynamique.SousGroupe" table="SOUSGROUPE">
    	<key column="ID"/>
    	<!-- Associations -->
     
     
    	<many-to-one name="parent" column="IDPARENT" not-null="false" unique="true"	cascade="none"/>
    		<many-to-one 
    			name="cph"
    			column="IDGROUPE"
    			not-null="true"
    			cascade="all"/>
    	...  	  
    </joined-subclass>
     
    	<joined-subclass name="dynamique.Groupe" table="GROUPECPH">
    		<key column="ID"/>
    		<many-to-one  name="nationalite" column="IDPAYS" unique="true" cascade="all" lazy="false"/>
    ...
    voici ma critéria :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    critere.add(Restrictions.eq("cph.nationalite.id", 1));
    cependant j'ai l'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.hibernate.QueryException: could not resolve property: cph.nationalite.id of: dynamique.SousGroupe

    j'ai esayer de faire directement en HQL et la requête à fonctionné donc mon mapping est correct. Je pense que mon erreur viens de la propertie mais je nois pas pourquoi.

    merci pour votre aide.

  2. #2
    Membre actif Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 257
    Points
    257
    Par défaut
    Peut-être comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    critere.add(Restrictions.eq("parent.cph.nationalite.id", 1));
    mais je ne suis pas sûr d'avoir bien compris ton histoire de groupe/sous-groupe

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 62
    Points
    62
    Par défaut
    J'ai essayer t'a requête mais j'obtiens toujours la même erreur.

    pour un peux mieux expliquer ce que je souhaite :

    j'ai trois table groupe, sousGroupe et nationnalite

    groupe à une clé étrangère vers la table nationalité et sous groupe à une clé étrangère vers groupe. Je souhaite avoir la liste des sous groupe dont le groupe à pour clé de nationalité 1

    merci

  4. #4
    Membre actif Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 257
    Points
    257
    Par défaut
    Tu dis que la requête fonctionne en HQL : peux-tu montrer la requête que tu testes ?

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 62
    Points
    62
    Par défaut
    ok voici la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getHibernateTemplate().find("from SousGroupe s where s.cph.nationalite.id = 1");

  6. #6
    Membre actif Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 257
    Points
    257
    Par défaut
    Au temps pour moi, je n'avais pas bien compris ton mapping (notamment à cause de l'indentation).
    En fait tu ne peux pas pas imbriquer directement les propriétés au niveau de tes criteria, il faut recréer des criteria (ou bien utiliser des alias). Voici un exemple repris de la documentation Hibernate (cf paragraphe 15.4) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    List cats = sess.createCriteria(Cat.class)
        .add( Restrictions.like("name", "F%")
        .createCriteria("kittens")
            .add( Restrictions.like("name", "F%")
        .list();

  7. #7
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Points : 62
    Points
    62
    Par défaut
    salut,

    merci pour ton aide, je n'avais pas vu cette exemple, j'ai du passer trop vite

    en tous cas il as résolu mon problème.

    merci encore

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

Discussions similaires

  1. Test unitaire sur la couche dao
    Par coolcoolcool dans le forum Java EE
    Réponses: 0
    Dernier message: 07/09/2010, 15h55
  2. Dessin sur une couche wfs
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 0
    Dernier message: 08/06/2010, 22h08
  3. [reseau de neurones]cb de neurones sur les couches ?
    Par oniric dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 27/05/2007, 10h08
  4. [VBA-Excel]recherche sur plusiers feuilles
    Par salim_kwada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/08/2006, 16h38
  5. [ORACLE8] probleme contrainte sur plusiers tables
    Par yostane dans le forum Oracle
    Réponses: 4
    Dernier message: 23/04/2006, 19h00

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