[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:
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:
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:
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:
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:
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!