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)
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
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>
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
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 { ... }
Quelqu'un pourrait il me dire pourquoi cmd.getTypeetape() ne charge pas mais objets ?
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)
Pour avoir une idée de la base, la voici
Commande <--n,m------(CmdEtape)-----n,m--> TypeEtape
Merci
Partager