Bonjour,

Je travail en Java et hiernate 3 sous eclipse. J'utilise MySQL en BDD.

Mon fichier mapping est automatiquement créé par éclipse (présent ci dessous)

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
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
 
<hibernate-mapping package="mtr.bdd">
	<class
		name="Commande"
		table="commande"
	>
		<meta attribute="sync-DAO">false</meta>
		<id
			name="Id"
			type="java.lang.Long"
			column="CommandeId"
		>
			<generator class="assigned"/>
		</id>
 
                ...
 
		<set
			name="Typeetapes"
			table="cmdetape"
			cascade="all"
		>
			<key column="CommandeId"/>
			<many-to-many column="NomEtape" class="Typeetape"/>
		</set>
 
                ...
 
	</class>	
</hibernate-mapping>
En synchronisant le fichier il me cré le code ci dessous

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
 
 
public abstract class BaseCommande  implements Serializable {
 
        ...
 
        public void addToTypeetapes (mtr.bdd.Typeetape typeetape) {
		if (null == getTypeetapes()) setTypeetapes(new java.util.TreeSet<mtr.bdd.Typeetape>());
		getTypeetapes().add(typeetape);
	}
 
         /**
         * Return the value associated with the column: Typeetapes
         */
	public java.util.Set<mtr.bdd.Typeetape> getTypeetapes () {
		return typeetapes;
	}
 
        ...
}
 
public Commande extends BaseCommande {
 
        ...
 
}
Un peu plus loin, j'effectue le code suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 
Session session = HibernateUtil.currentSession();
 
Commande cmd = (Commande) session.load(Commande.class, 1L)
//Jusque la tout ce passe bien, cmd est correctement chargé
 
Systeme.out.println(cmd.getTypeetape().size());
//Il m'affiche 0 alors qu'il existe bien des éléments dans la base de données.
//Pour preuve en exécutant la requete SQL générée par Hibernate mais directement sur MySQL, je trouve 2 (qui est le bon résultat)
Quelqu'un pourrait il me dire pourquoi cmd.getTypeetape() ne charge pas mais objets ?

Pour avoir une idée de la base, la voici

Commande <--n,m------(CmdEtape)-----n,m--> TypeEtape

Merci