Bonjour,

J'ai un soucis pour caster l'objet retourner par un list.get() après une SELECT exécutant une jointure.

Voici le code exécuté :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Query query = session.createQuery("FROM Users u LEFT JOIN u.Usersaddress");
List result = query.list();
 
// RETOURNE 3
System.out.println(result.size());
// CAST ERROR
Users u = (Users)result.get(0);
La liste contient 3 objets, mais je ne sais pas de quel type caster ces objets pour pouvoir les utiliser...

J'ai utiliser le pluggin synchronizer dans eclipse pour générer mes fichiers de mapping .hbm.xml, qui génère également les fichiers .java relatif.

Il s'agit d'une relation one-to-many, 1 Users peut avoir N Adress mais, 1 Adress n'a qu'1 seul Users.

Les fichiers de mapping pour Users et Usersadress ressemble à ca :

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
<hibernate-mapping package="org.nasr.database">
	<class
		name="Users"
		table="users">
		<meta attribute="sync-DAO">false</meta>
		<id
			name="Id"
			type="integer"
			column="ID_USER"
		>
			<generator class="increment"/>
		</id>

		<set name="Usersaddress" inverse="true">
			<key column="ID_USER"/>
			<one-to-many class="Usersaddress"/>
		</set>	
	</class>	
</hibernate-mapping>



<hibernate-mapping package="org.nasr.database">
	<class
		name="Usersaddress"
		table="usersaddress">
		<meta attribute="sync-DAO">false</meta>
		<id
			name="Id"
			type="integer"
			column="ID"
		>
			<generator class="increment"/>
		</id>
		<many-to-one
			name="IdUser"
			column="ID_USER"
			class="Users"
			not-null="true"
		/>
	</class>	
</hibernate-mapping>
Et tant donné qu'il s'agit d'une relation one-to-many je ne veux pas créer une table de jointure externe, ce qui serait complètement illogique bien que suggeré par hibernate, pourquoi créer une table externe, modifier le schéma d'une base de donnée pour faire fonctionner hibernate... ??? dans le cas de relation many-to-many il va de soit mais pas pour une relation one-to-many ou many-to-one.

Simplement j'aimerai savoir de quel type casté ces objets... merci !