ça ne marche pas !!! je comprends plus....
(vraiment, aidez moi ou je vais tout peter)

l'enregistrement dans la table de liaison ne ce fait jamais ! j'ai ajouter les hashcode mais ca ma fait l'erreur sur les hashcode propriete.hashcode() qui est un Set.




3 tables :
films
propriete
film_has propriete

2 objets:
films
propriete



2 mappings :

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
70
71
72
73
74
75
76
77
78
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 9 janv. 2007 22:59:11 by Hibernate Tools 3.2.0.beta8 -->
<hibernate-mapping>
    <class name="com.db.hibernate.Films" table="films" catalog="vidix">
        <comment></comment>
        <id name="idfilms" type="int">
            <column name="idfilms" />
            <generator class="assigned" />
        </id>
        <property name="titre" type="string">
            <column name="titre" length="45">
                <comment></comment>
            </column>
        </property>
        <property name="date" type="date">
            <column name="date" length="10">
                <comment></comment>
            </column>
        </property>
        <property name="duree" type="time">
            <column name="duree" length="8">
                <comment></comment>
            </column>
        </property>
        <property name="numExploit" type="string">
            <column name="numExploit" length="45">
                <comment></comment>
            </column>
        </property>
        <property name="synopsis" type="string">
            <column name="synopsis" length="65535">
                <comment></comment>
            </column>
        </property>
        <set name="sequenceses" inverse="true">
            <key>
                <column name="films_idfilms">
                    <comment></comment>
                </column>
            </key>
            <one-to-many class="com.db.hibernate.Sequences" />
        </set>
        <set name="proprieteses" inverse="true" table="films_has_proprietes">
            <key>
                <column name="films_idfilms" not-null="true">
                    <comment></comment>
                </column>
            </key>
            <many-to-many entity-name="com.db.hibernate.Proprietes">
                <column name="proprietes_idproprietes" not-null="true">
                    <comment></comment>
                </column>
            </many-to-many>
        </set>
        <set name="fichesServiceses" inverse="true">
            <key>
                <column name="films_idfilms" not-null="true">
                    <comment></comment>
                </column>
            </key>
            <one-to-many class="com.db.hibernate.FichesServices" />
        </set>
        <set name="documentses" inverse="true" table="films_has_documents">
            <key>
                <column name="films_idfilms" not-null="true">
                    <comment></comment>
                </column>
            </key>
            <many-to-many entity-name="com.db.hibernate.Documents">
                <column name="documents_iddocuments" not-null="true">
                    <comment></comment>
                </column>
            </many-to-many>
        </set>
    </class>
</hibernate-mapping>


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 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 9 janv. 2007 22:59:11 by Hibernate Tools 3.2.0.beta8 -->
<hibernate-mapping>
    <class name="com.db.hibernate.Proprietes" table="proprietes" catalog="vidix">
        <comment></comment>
        <id name="idproprietes" type="int">
            <column name="idproprietes" />
            <generator class="assigned" />
        </id>
        <many-to-one name="nomProprietes" class="com.db.hibernate.NomProprietes" fetch="select">
            <column name="nomProprietes_idnomProprietes" not-null="true">
                <comment></comment>
            </column>
        </many-to-one>
        <property name="valeur" type="string">
            <column name="valeur" length="45">
                <comment></comment>
            </column>
        </property>
        <set name="filmses" inverse="true" table="films_has_proprietes">
            <key>
                <column name="proprietes_idproprietes" not-null="true">
                    <comment></comment>
                </column>
            </key>
            <many-to-many entity-name="com.db.hibernate.Films">
                <column name="films_idfilms" not-null="true">
                    <comment></comment>
                </column>
            </many-to-many>
        </set>
    </class>
</hibernate-mapping>


2 objets mapper :
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
package com.db.hibernate;
 
// Generated 9 janv. 2007 22:59:11 by Hibernate Tools 3.2.0.beta8
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
/**
 * Films generated by hbm2java
 */
public class Films implements java.io.Serializable
{
 
	// Fields    
 
	private int idfilms;
 
	private String titre;
 
	private Date date;
 
	private Date duree;
 
	private String numExploit;
 
	private String synopsis;
 
	private Set<Sequences> sequenceses = new HashSet<Sequences>(0);
 
	private Set<Proprietes> proprieteses = new HashSet<Proprietes>(0);
 
	private Set<FichesServices> fichesServiceses = new HashSet<FichesServices>(0);
 
	private Set<Documents> documentses = new HashSet<Documents>(0);
 
	// Constructors
 
	/** default constructor */
	public Films()
	{
	}
 
	/** minimal constructor */
	public Films(int idfilms)
	{
		this.idfilms = idfilms;
	}
 
	/** full constructor */
	public Films(int idfilms, String titre, Date date, Date duree, String numExploit, String synopsis, Set<Sequences> sequenceses, Set<Proprietes> proprieteses, Set<FichesServices> fichesServiceses, Set<Documents> documentses)
	{
		this.idfilms = idfilms;
		this.titre = titre;
		this.date = date;
		this.duree = duree;
		this.numExploit = numExploit;
		this.synopsis = synopsis;
		this.sequenceses = sequenceses;
		this.proprieteses = proprieteses;
		this.fichesServiceses = fichesServiceses;
		this.documentses = documentses;
	}
 
	// Property accessors
	public int getIdfilms()
	{
		return this.idfilms;
	}
 
	public void setIdfilms(int idfilms)
	{
		this.idfilms = idfilms;
	}
 
	public String getTitre()
	{
		return this.titre;
	}
 
	public void setTitre(String titre)
	{
		this.titre = titre;
	}
 
	public Date getDate()
	{
		return this.date;
	}
 
	public void setDate(Date date)
	{
		this.date = date;
	}
 
	public Date getDuree()
	{
		return this.duree;
	}
 
	public void setDuree(Date duree)
	{
		this.duree = duree;
	}
 
	public String getNumExploit()
	{
		return this.numExploit;
	}
 
	public void setNumExploit(String numExploit)
	{
		this.numExploit = numExploit;
	}
 
	public String getSynopsis()
	{
		return this.synopsis;
	}
 
	public void setSynopsis(String synopsis)
	{
		this.synopsis = synopsis;
	}
 
	public Set<Sequences> getSequenceses()
	{
		return this.sequenceses;
	}
 
	public void setSequenceses(Set<Sequences> sequenceses)
	{
		this.sequenceses = sequenceses;
	}
 
	public Set<Proprietes> getProprieteses()
	{
		return this.proprieteses;
	}
 
	public void setProprieteses(Set<Proprietes> proprieteses)
	{
		this.proprieteses = proprieteses;
	}
 
	public Set<FichesServices> getFichesServiceses()
	{
		return this.fichesServiceses;
	}
 
	public void setFichesServiceses(Set<FichesServices> fichesServiceses)
	{
		this.fichesServiceses = fichesServiceses;
	}
 
	public Set<Documents> getDocumentses()
	{
		return this.documentses;
	}
 
	public void setDocumentses(Set<Documents> documentses)
	{
		this.documentses = documentses;
	}
 
	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode()
	{
		final int PRIME = 31;
		int result = 1;
		result = PRIME * result + ((date == null) ? 0 : date.hashCode());
		result = PRIME * result + ((documentses == null) ? 0 : documentses.hashCode());
		result = PRIME * result + ((duree == null) ? 0 : duree.hashCode());
		result = PRIME * result + ((fichesServiceses == null) ? 0 : fichesServiceses.hashCode());
		result = PRIME * result + idfilms;
		result = PRIME * result + ((numExploit == null) ? 0 : numExploit.hashCode());
 
		Set test=proprieteses;
 
		int testhc=test.hashCode();
 
		result = PRIME * result + (
				(proprieteses == null)
				? 0 
						: proprieteses.hashCode());
		result = PRIME * result + ((sequenceses == null) ? 0 : sequenceses.hashCode());
		result = PRIME * result + ((synopsis == null) ? 0 : synopsis.hashCode());
		result = PRIME * result + ((titre == null) ? 0 : titre.hashCode());
		return result;
	}
 
	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj)
	{
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final Films other = (Films) obj;
		if (date == null)
		{
			if (other.date != null)
				return false;
		} else if (!date.equals(other.date))
			return false;
		if (documentses == null)
		{
			if (other.documentses != null)
				return false;
		} else if (!documentses.equals(other.documentses))
			return false;
		if (duree == null)
		{
			if (other.duree != null)
				return false;
		} else if (!duree.equals(other.duree))
			return false;
		if (fichesServiceses == null)
		{
			if (other.fichesServiceses != null)
				return false;
		} else if (!fichesServiceses.equals(other.fichesServiceses))
			return false;
		if (idfilms != other.idfilms)
			return false;
		if (numExploit == null)
		{
			if (other.numExploit != null)
				return false;
		} else if (!numExploit.equals(other.numExploit))
			return false;
		if (proprieteses == null)
		{
			if (other.proprieteses != null)
				return false;
		} else if (!proprieteses.equals(other.proprieteses))
			return false;
		if (sequenceses == null)
		{
			if (other.sequenceses != null)
				return false;
		} else if (!sequenceses.equals(other.sequenceses))
			return false;
		if (synopsis == null)
		{
			if (other.synopsis != null)
				return false;
		} else if (!synopsis.equals(other.synopsis))
			return false;
		if (titre == null)
		{
			if (other.titre != null)
				return false;
		} else if (!titre.equals(other.titre))
			return false;
		return true;
	}
 
}

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package com.db.hibernate;
 
// Generated 9 janv. 2007 22:59:11 by Hibernate Tools 3.2.0.beta8
 
import java.util.HashSet;
import java.util.Set;
 
/**
 * Proprietes generated by hbm2java
 */
public class Proprietes implements java.io.Serializable
{
 
	// Fields    
 
	private int idproprietes;
 
	private NomProprietes nomProprietes;
 
	private String valeur;
 
	private Set<Films> filmses = new HashSet<Films>(0);
 
	// Constructors
 
	/** default constructor */
	public Proprietes()
	{
	}
 
	/** minimal constructor */
	public Proprietes(int idproprietes, NomProprietes nomProprietes)
	{
		this.idproprietes = idproprietes;
		this.nomProprietes = nomProprietes;
	}
 
	/** full constructor */
	public Proprietes(int idproprietes, NomProprietes nomProprietes, String valeur, Set<Films> filmses)
	{
		this.idproprietes = idproprietes;
		this.nomProprietes = nomProprietes;
		this.valeur = valeur;
		this.filmses = filmses;
	}
 
	// Property accessors
	public int getIdproprietes()
	{
		return this.idproprietes;
	}
 
	public void setIdproprietes(int idproprietes)
	{
		this.idproprietes = idproprietes;
	}
 
	public NomProprietes getNomProprietes()
	{
		return this.nomProprietes;
	}
 
	public void setNomProprietes(NomProprietes nomProprietes)
	{
		this.nomProprietes = nomProprietes;
	}
 
	public String getValeur()
	{
		return this.valeur;
	}
 
	public void setValeur(String valeur)
	{
		this.valeur = valeur;
	}
 
	public Set<Films> getFilmses()
	{
		return this.filmses;
	}
 
	public void setFilmses(Set<Films> filmses)
	{
		this.filmses = filmses;
	}
 
}

j'ai donc bien les hashcode et pourtant :


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
70
71
72
23:05:17,446 DEBUG SQL:393 - select fichesserv0_.films_idfilms as films2_1_, fichesserv0_.idfichesServices as idfiches1_1_, fichesserv0_.idfichesServices as idfiches1_16_0_, fichesserv0_.films_idfilms as films2_16_0_, fichesserv0_.date as date16_0_ from vidix.fichesServices fichesserv0_ where fichesserv0_.films_idfilms=?
Hibernate: select fichesserv0_.films_idfilms as films2_1_, fichesserv0_.idfichesServices as idfiches1_1_, fichesserv0_.idfichesServices as idfiches1_16_0_, fichesserv0_.films_idfilms as films2_16_0_, fichesserv0_.date as date16_0_ from vidix.fichesServices fichesserv0_ where fichesserv0_.films_idfilms=?
23:05:17,447 DEBUG AbstractBatcher:476 - preparing statement
23:05:17,452 DEBUG IntegerType:80 - binding '1' to parameter: 1
23:05:17,457 DEBUG AbstractBatcher:374 - about to open ResultSet (open ResultSets: 0, globally: 0)
23:05:17,459 DEBUG Loader:1040 - result set contains (possibly empty) collection: [com.db.hibernate.Films.fichesServiceses#1]
23:05:17,459 DEBUG CollectionLoadContext:84 - uninitialized collection: initializing
23:05:17,460 DEBUG Loader:682 - processing result set
23:05:17,462 DEBUG Loader:709 - done processing result set (0 rows)
23:05:17,463 DEBUG AbstractBatcher:381 - about to close ResultSet (open ResultSets: 1, globally: 1)
23:05:17,464 DEBUG AbstractBatcher:366 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
23:05:17,465 DEBUG AbstractBatcher:525 - closing statement
23:05:17,466 DEBUG Loader:839 - total objects hydrated: 0
23:05:17,469 DEBUG CollectionLoadContext:262 - 1 collections were found in result set for role: com.db.hibernate.Films.fichesServiceses
23:05:17,469 DEBUG CollectionLoadContext:206 - collection fully initialized: [com.db.hibernate.Films.fichesServiceses#1]
23:05:17,470 DEBUG CollectionLoadContext:272 - 1 collections initialized for role: com.db.hibernate.Films.fichesServiceses
23:05:17,471 DEBUG Loader:1934 - done loading collection
23:05:17,473 DEBUG DefaultInitializeCollectionEventListener:61 - collection initialized
23:05:23,679 ERROR LazyInitializationException:19 - illegal access to loading collection
org.hibernate.LazyInitializationException: illegal access to loading collection
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:341)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
	at org.hibernate.collection.PersistentSet.toString(PersistentSet.java:256)
	at com.db.hibernate.Films.hashCode(Films.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:185)
	at com.db.hibernate.Films$$EnhancerByCGLIB$$84eb8843.hashCode(<generated>)
	at java.util.HashMap.hash(HashMap.java:264)
	at java.util.HashMap.put(HashMap.java:382)
	at java.util.HashSet.add(HashSet.java:194)
	at java.util.AbstractCollection.addAll(AbstractCollection.java:318)
	at org.hibernate.collection.PersistentSet.endRead(PersistentSet.java:276)
	at org.hibernate.engine.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:183)
	at org.hibernate.engine.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:268)
	at org.hibernate.engine.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:249)
	at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:866)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:853)
	at org.hibernate.loader.Loader.doQuery(Loader.java:717)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:1918)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1716)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:358)
	at com.db.hibernate.Proprietes.hashCode(Proprietes.java:96)
	at java.util.HashMap.hash(HashMap.java:264)
	at java.util.HashMap.put(HashMap.java:382)
	at java.util.HashSet.add(HashSet.java:194)
	at java.util.AbstractCollection.addAll(AbstractCollection.java:318)
	at org.hibernate.collection.PersistentSet.endRead(PersistentSet.java:276)
	at org.hibernate.engine.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:183)
	at org.hibernate.engine.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:268)
	at org.hibernate.engine.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:249)
	at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:866)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:853)
	at org.hibernate.loader.Loader.doQuery(Loader.java:717)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:1918)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1716)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
	at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:141)
	at test.Test1.main(Test1.java:32)




pour essayer :
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
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		Films f = (Films) session.load(Films.class, 1);
 
		Set p=f.getProprieteses();
		System.out.println(">>>>>>>>>>>>>< film titre : " + f.getTitre());
		Iterator ps= p.iterator();
 
		for (; ps.hasNext();)
		{
			Proprietes element = (Proprietes) ps.next();
 
 
			System.out.println("!!!!!!!!!!!!!!!!!!!!!!! \n     film titre : " + element.getValeur() + " Time: " + element.getNomProprietes().getNom());
		}
 
 
 
		NomProprietes np=(NomProprietes) session.load(NomProprietes.class , 1);
		Proprietes pp=new Proprietes();
		pp.setNomProprietes(np);
		pp.setValeur("finlandais");
 
 
		ps= f.getProprieteses().iterator();
 
		for (; ps.hasNext();)
		{
			Proprietes element = (Proprietes) ps.next();
 
 
			System.out.println("film titre : " + element.getValeur() + " Time: " + element.getNomProprietes().getNom());
		}
		//session.saveOrUpdate(f);
 
 
 
 
 
		f.getProprieteses().add(pp);
 
 
		pp.getFilmses().add(f);
 
		session.save(pp);
		//session.update(f);
 
 
		session.getTransaction().commit();		
 
		HibernateUtil.getSessionFactory().close();
Merci (infiniment)