Bonjour,

Je travaille sur un projet J2EE utilisant hibernate 3. J'utilise Hibernate Synchronizer. Tout marche à peu près bien sauf un point : lorsque je veux accéder à une collection d'objet contenu dans un objet persistent. Par exemple dans la classe Car j'ai une collection de Vote (Un véhicule peut avoir plusieurs votes) : impossible d'y accéder, la collection semble non initialisée.

Je me suis renseigné, notamment sur le lazy loading. Il est donc à priori activé mais je ne suis pas plus avancé...Ma collection n'est toujours pas initialisée (avec ou sans d'ailleur).

Voici mes fichiers de mapping :
Fichier Car :
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<hibernate-mapping package="test.hibernate">
    <class
        name="Car"
        table="car"
    >
        <id
            name="Id"
            type="integer"
            column="id"
        >
            <generator class="increment"/>
        </id>
 
        <property
            name="Marque"
            column="marque"
            type="string"
            not-null="false"
            length="255"
        />
        <property
            name="Modele"
            column="modele"
            type="string"
            not-null="false"
            length="255"
        />
        <property
            name="Description"
            column="description"
            type="string"
            not-null="false"
        />
        <property
            name="Url"
            column="url"
            type="string"
            not-null="true"
            length="255"
        />
        <property
            name="Dtcreation"
            column="dtcreation"
            type="date"
            not-null="true"
            length="10"
        />
        <many-to-one
            name="User"
            column="user"
            class="User"
            not-null="true"
        >
        </many-to-one>
 
 
        <set name="Votes" inverse="true" lazy="true">
            <key column="id"/>
            <one-to-many class="Vote"/>
        </set>
 
        <set name="Comments" inverse="true" lazy="true">
            <key column="id"/>
            <one-to-many class="Comment"/>
        </set>
 
 
    </class>    
</hibernate-mapping>
Fichier Vote :
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
37
38
<hibernate-mapping package="test.hibernate">
    <class
        name="Vote"
        table="vote"
    >
        <id
            name="Id"
            type="integer"
            column="id"
        >
            <generator class="increment"/>
        </id>
 
        <property
            name="Note"
            column="note"
            type="integer"
            not-null="true"
            length="2"
        />
        <property
            name="Dtcreation"
            column="dtcreation"
            type="date"
            not-null="false"
            length="10"
        />
        <many-to-one
            name="Car"
            column="car"
            class="Car"
            not-null="true"
        >
        </many-to-one>
 
 
    </class>    
</hibernate-mapping>
Et voici comment je l'utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Car c = carDAO.load(id);        
Set vote_set = c.getVotes();        
Iterator it = vote_set.iterator();
while (it.hasNext()) {
      Vote v = (Vote) it.next();
      System.out.println(v.getNote());
}
Ce bout de code m'affiche correctement le premier vote mais pas les autres. Je ne comprends pas pourquoi j'arrive à récupérer qu'un seul élement de mon Set.

PS : ma base de données est Mysql.

Si vous avez une idée elle me serait de grand secour ! Merci.