bonjour,

J'ai défini une classe Interventions qui a une relation many-to-one avec une classe Configuration et une seconde avec une classe Equipe. La classe Configuration a quant à elle une relation many-to-one avec une classe Periode.

Voici le descriptif de mes classes:

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
20
21
22
23
24
25
26
 
Class Interventions {
 
	Configuration configuration;
	Equipe equipe;
	...
}
 
Class Configuration {
 
	Periode periode;
	...
}
 
Class Equipe {
 
	String codeEquipe;
	...
}
 
Class Periode {
 
	int mois;
	int annee;
	...
}
Tous les accesseurs et les mutateurs de mes classes apparaissent comme bien définis.

Je souhaiterais récupérer les objets Interventions associés à une période donnée et à une equipe donnée

j'ai défini une requête ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
DetachedCriteria criteria = DetachedCriteria.forClass(Interventions.class)
	.setFetchMode("equipe”,FetchMode.JOIN)
	.setFetchMode("configuration”,FetchMode.JOIN)
	.setFetchMode("configuration.periode”,FetchMode.JOIN)
	.add(Restrictions.eq("equipe", monEqu))
	.add(Restrictions.eq("configuration.periode", maPeriode));
Je récupère le résultat de mon résultat dans un itérateur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Iterator monResultat = getHibernateTemplate().findByCriteria(criteria).iterator();
A l'exécution de mon code, j'obtiens l'erreur suivante:

org.hibernate.QueryException : could not resolve property : configuration.periode

Est-ce que ma requete est mal ecrite?

PS : Le mapping de mes classes est le suivant:

fichier Interventions.hbm.xml:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping  package="monprojet.bean" 
					default-lazy="true"
					default-cascade="none">
  <class  optimistic-lock="version" table="INTERVENTION_INTV" name="Interventions">
    <id unsaved-value="null" 
    	name="id" 
    	type="java.lang.Long" 
    	column="intv_ID">
      <generator class="native">
      	<param name="sequence">intv_ID_SEQUENCE</param>
      </generator>
    </id>
 
  <version column="VERSION" generated="never" name="version" type="integer"/>
 
  <property column="VALEUR1" generated="never" lazy="false"
   name="nbJoursAgents" type="java.math.BigDecimal"/>
  <property column="VALEUR2" generated="never" lazy="false"
   name="nbJoursIntervention" type="java.math.BigDecimal"/>
  <property column="VALEUR3" generated="never" lazy="false"
   name="nbTotalInterventions" type="java.math.BigDecimal"/>
  <property column="VALEUR4" generated="never" lazy="false"
   name="delaiMoyenIntervention" type="java.math.BigDecimal"/>
  <property column="VALEUR5" generated="never" lazy="false"
   name="tpsTransportTotalJours" type="java.math.BigDecimal"/>
  <many-to-one class="Equipe" column="Equipe_ID" foreign-key="FK_INTV_Equipe"
   name="Equipe" not-null="true"/>
  <many-to-one name="configuration" class="monprojet.bean.Configuration" foreign-key="FK_INTV_CONF" lazy="false">
    <column name="CONF_ID" not-null="true"/>
  </many-to-one>
 </class>
</hibernate-mapping>
fichier Configuration.hbm.xml:
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
20
21
22
23
24
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="monprojet.bean">
 <class name="Configuration" table="CONFIGURATION_CONF">
  <id column="CONF_ID" name="id" type="java.lang.Long">
   <generator class="native">
    <param name="sequence">CONF_ID_SEQUENCE</param>
   </generator>
  </id>
  <natural-id mutable="true">
   <property column="UIDUTILISATEUR" generated="never" lazy="false"
    name="uidUtilisateur" type="java.lang.String"/>
  </natural-id>
  <version column="VERSION" generated="never" name="version" type="integer"/>
  <property column="DATESAISIE" generated="never" lazy="false"
    name="dateSaisie" type="java.util.Calendar"/>
  <many-to-one column="CSI_ID" class="Csi" name="csi" not-null="true" foreign-key="FK_CONF_CSI" />
  <many-to-one name="periode" class="Periode" foreign-key="FK_CONF_PERIODE" lazy="false">
    <column name="PERI_ID" not-null="true"/>
  </many-to-one>
 </class>
</hibernate-mapping>
fichier Equipe.hbm.xml:
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
20
21
22
23
24
25
26
27
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping  package="monprojet.bean" 
					default-lazy="true"
					default-cascade="none">
  <class  optimistic-lock="version" table="Equipe_Equipe" name="Equipe">
    <id unsaved-value="null" 
    	name="id" 
    	type="java.lang.Long" 
    	column="Equipe_ID">
      <generator class="native">
      	<param name="sequence">Equipe_ID_SEQUENCE</param>
      </generator>
    </id>
    <natural-id mutable="true">
   		 <property  name="codeEquipe" 
                    column="Equipe" 
                    type="java.lang.String"/>
    </natural-id>
    <version name="version" 
   			column="VERSION" 
   			type="integer"/>
    <many-to-one column="CSI_ID" class="Csi" name="csi" not-null="true" foreign-key="FK_Equipe_CSI" />			
  </class>
</hibernate-mapping>
fichier Periode.hbm.xml:
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
20
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="monprojet.bean">
 <class name="Periode" table="PERIODE_PERI">
  <id column="PERI_ID" name="id" type="java.lang.Long">
   <generator class="native">
    <param name="sequence">PERI_ID_SEQUENCE</param>
   </generator>
  </id>
  <natural-id mutable="true">
   <property column="MOIS" generated="never" lazy="false"
    name="mois" type="java.lang.Short"/>
   <property column="ANNEE" generated="never" lazy="false"
    name="annee" type="java.lang.Short"/>
  </natural-id>
  <version column="VERSION" generated="never" name="version" type="integer"/>
 </class>
</hibernate-mapping>
Je souhaiterais de plus trouver un manuel de référence pour l'écriture des criterias avec le maximum d'exemples. Quelqu'un aurait-il des recommandations ( je sais, j'en demande beaucoup )...

Merci pour votre réponse.