Caster l'objet retourner par list.get() sur une requete de jointure
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:
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:
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 !
Est ce que c'est possible de casté un objet dans une requete HQL
Citation:
Envoyé par
the-gtm
class [Ljava.lang.Object;
Attention au [L : ça veut dire que c'est un tableau d'objets ;)
Code:
Object[] firstResult = (Object[]) list.get(0);
SVP aurriez vous une idée sur cette question : Est ce que c'est possible de casté un objet directement dans une requete HQL
Merci