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] "could not resolve property" sur un tri


Sujet :

Hibernate Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [Hibernate] "could not resolve property" sur un tri
    Bonjour,

    J'ai un problème avec un order qui ne fonctionne pas, hibernate ne trouve pas la propriété sur laquelle je veux trier.

    Je fais une requête sur des objets de type RelGroupRightData dont voici le code java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class RelGroupRightData implements Serializable
    {
    	private GroupData groupData;
    	private RightData rightData;
    	private ObjectTypeData objectTypeData;
    }
    Voici le code de l'objet GroupData :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class GroupData
    {
    	private int id;
    	private String name;
    	private String description;
    }
    Voici le mapping hibernate de la classe RelGroupRightData:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <class name="RelGroupRightData" table="rel_group_right" lazy="false">
    	<composite-id >
    		<key-many-to-one name="groupData" class="GroupData" column="group_id"/>
    		<key-many-to-one name="objectTypeData" class="ObjectTypeData" column="object_type_id"/>
    	</composite-id>
    	<many-to-one name="rightData" class="RightData" column="right_id"/>
    </class>
    et celui de la classe GroupData :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <class name="GroupData" table="adm_group" lazy="false">
    	<id column="id" name="id" type="java.lang.Integer">
    		<generator class="sequence">
    			<param name="sequence">seq_adm_group</param>
    		</generator>
    	</id>
     
    	<property column="description" name="description" not-null="false" type="java.lang.String" />
    	<property column="name" name="name" not-null="true" type="java.lang.String" />
    </class>
    Je veux récupérer les objets GroupData pour un certain ObjectTypeData (pas expliqué ici car aucun problème de ce côté là) et trier le résultat par name.

    Voici le criteria que je construis avec le critère sur l'id de ObjectTypeData qui fonctionne et le tri qui ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Criteria criteria = hibernateSession.createCriteria(RelGroupRightData.class);
    criteria.add(Restrictions.eq("objectTypeData.id", new Integer(objectTypeForm.getId())));
    criteria.addOrder(Order.asc("groupData.name"));
    J'obtiens donc l'erreur suivante : org.hibernate.QueryException: could not resolve property: groupData.name of: RelGroupRightData

    A savoir que si je remplace le tri par "groupData.id" cela fonctionne.
    Il doit donc s'agir d'un problème de mapping au niveau des relations key-many-to-one qui ne permettent de créer des critères que sur l'id ?


    Merci d'avance!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Bonjour,

    Essaye de créer un alias avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Criteria criteria = hibernateSession.createCriteria RelGroupRightData.class);
    criteria.add(Restrictions.eq("objectTypeData.id", new Integer objectTypeForm.getId())));
    ctr = ctr.createAlias("groupData", "groupData");
    criteria.addOrder(Order.asc("groupData.name"));

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/10/2012, 10h06
  2. Réponses: 1
    Dernier message: 28/12/2010, 11h08
  3. [Liferay] exception: org.hibernate.QueryException: could not resolve property
    Par lamis2009 dans le forum Portails
    Réponses: 2
    Dernier message: 11/06/2010, 11h13
  4. hibernate.QueryException: could not resolve property
    Par g56589 dans le forum Hibernate
    Réponses: 2
    Dernier message: 29/01/2008, 23h45
  5. could not resolve property
    Par *alexandre* dans le forum Hibernate
    Réponses: 1
    Dernier message: 30/10/2006, 13h44

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