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 :

[Hibernate]Alias et projections


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 5
    Points
    5
    Par défaut [Hibernate]Alias et projections
    Bonjour,
    J'arrive pas à faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Criteria crit = session.createCriteria(classPersiste.class);
    crit = crit.createAlias("mapropriete", "mapropr");
     
    List retour = 
    crit.setProjection( Projections.projectionList()
    .add( Projections.property("mapropr"), "mapropr" ))
                            .setResultTransformer(Transformers.aliasToBean(maClass.class)).list();


    il reconnait pas "maprop" sachant que je c'est bien un alias :

    org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: maprop of: fr.persist.classPersiste; nested

    CAN U HELP PLEASE

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 23
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Je pense si tu veux seulement recupérer l'objet "mapropriete", ce n'est pas la peine de declarer cette ligne :
    crit = crit.createAlias("mapropriete", "mapropr");
    cette ligne sera utile si tu veux accéder à un attribut de cet objet, car hibernate te crée automatiquement une jointure de type ""inner join" avec la table mappé par "mapropriete", sinon, si c'et objet est un simple attribut la declaration :
    cri.add(Projections.property("mapropriete","mapropr"));
    suffit

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci

    Sachant que "mapropriete" est une collection et que pour accéder aux objet de cette collection je fais crit = crit.createAlias("mapropriete", "mapropr");

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    ça ne marche toujours pas il reconnait pas l'alias "mapropr"

  5. #5
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    que veux-tu faire exactement ?

    récupérer les objets associes avec ta class maClassPersiste ?

    dans ces cas crée la criteria de départ dessus et ajoute la restriction vers maClassPersiste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Criteria crit = session.createCriteria(MaClassAssociee.class)
    	.createCriteria("propriteteClassPersiste")
    	.add(Restrictions.eq("unChamp", "uneValeur"));
    si tu veux absolument utiliser cette query et le result transformer, c'est possible mais il te faut mettre tous les champs et leur donner le bon alias...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Criteria crit = session.createCriteria(MaClassPersiste.class)
    	.add(Restrictions.eq("unChamp", "uneValeur"));
    crit.createAlias("MaClassAssociee", "alias");
    List retour =
    	crit.setProjection( 
    		Projections.projectionList()
    		.add( Projections.property("alias.ProprietedeMaClassAssociee1"), "ProprietedeMaClassAssociee1")
    		.add( Projections.property("alias.ProprietedeMaClassAssociee2"), "ProprietedeMaClassAssociee2")
    		.add( Projections.property("alias.ProprietedeMaClassAssociee3"), "ProprietedeMaClassAssociee3")
    		...
    	)
    	.setResultTransformer(Transformers.aliasToBean(MaClassAssociee.class))
    	.list();
    ou j'ai mal compris ?

    ps: Projections.property doit désigner une propriété, pas une association (c'est un peu comme une clause de select)... ou alors ça aussi j'ai mal compris
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    j'ai essayé de faire une projection sur l'association , j avais pas envie d'accéder aux propriètes une à une

    je pensais que c'été possible

    Merci

Discussions similaires

  1. Hibernate : Criteria et Projection Liste
    Par richfaces dans le forum Hibernate
    Réponses: 4
    Dernier message: 17/08/2010, 16h49
  2. requete hibernate et alias
    Par erox44 dans le forum Hibernate
    Réponses: 0
    Dernier message: 10/07/2009, 15h48
  3. EJB project class extend hibernate project class
    Par mstrcos dans le forum JPA
    Réponses: 1
    Dernier message: 12/02/2009, 17h25
  4. probleme de Adding Project Classpath avec hibernator
    Par kramer Mc Barreth dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/11/2007, 10h05
  5. [hibernate] undefined alias
    Par mister_ouille dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/07/2006, 08h27

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