Salut à tous !
Après plusieurs heures de déboires, je m'agenouille à vos genoux en quête de solution
J'essaie de charger, par Hibernate 3.2.5, un objet dont les attributs sont récupérés de plusieurs tables. Si j'ai bien compris, dans mon cas, je dois passer par un SQL-Query à mettre dans le fichier de mapping, et c'est là où ca bloque : j'ai une "HibernateException: Errors in named queries: load_voiture"
-----------
Voici mes tables (le nom des tables est bidon, dsl) :
VOITURE
ID_VOITURE
ID_CAPOT
COULEUR
TUNING_STYLE
VOLANT
CAPOT
ID_CAPOT
FORME
TYPE_ROUE
COULEUR_VOITURE
TUNING_STYLE
COULEUR_LED
-----------
Voici mes objets :
Voiture {long id, Capot capot, int couleur, String volant, int couleurLed}
Capot {long id, String forme}
TypeRoue {int couleurVoiture, int tuningStyle, int couleurLed}
-----------
Voici donc ma requête SQL pour charger les attributs de l'objet Voiture:
-----------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT v.ID_VOITURE, c.ID_CAPOT, v.COULEUR, v.VOLANT, r.COULEUR_LED FROM VOITURE v INNER JOIN CAPOT c ON (c.ID_CAPOT = v.ID_CAPOT) LEFT OUTER JOIN TYPE_ROUE r ON (r.COULEUR_VOITURE = v.COULEUR AND r.TUNING_STYLE = v.TUNING_STYLE)
J'ai donc utilisé le fichier de mapping 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="databean"> <class name="VoitureBean" table="VOITURE"> <id name="id" column="ID_VOITURE"> <generator class="databean.SequenceTableGenerator"> <param name="table">SEQUENCE</param> <param name="primary_key_column">TABLE_NAME</param> <param name="primary_key_value">VOITURE</param> <param name="value_column">NEXTVAL</param> </generator> </id> <many-to-one name="capotBean" class="CapotBean" /> <property name="couleur" /> <property name="volant" /> <property name="couleurLed" /> <loader query-ref="load_voiture"/> </class> <sql-query name="load_voiture"> <return alias="voiture" class="databean.VoitureBean"> <return-property name="id" column="ID_VOITURE"/> <return-property name="couleur" column="COULEUR"/> <return-property name="volant" column="VOLANT"/> </return> <return-join alias="capot" property="voiture.capotBean"/> SELECT {voiture.*}, voiture.ID_CAPOT as {capot.id}, type_roue.COULEUR_LED as {voiture.couleurLed} FROM VOITURE voiture JOIN CAPOT capot ON (capot.ID_CAPOT = voiture.ID_CAPOT) LEFT OUTER JOIN TYPE_ROUE type_roue ON (type_roue.COULEUR_VOITURE = voiture.COULEUR_VOITURE AND type_roue.TUNING_STYLE = voiture.TUNING_STYLE) </sql-query> </hibernate-mapping>
Ayez pitié d'un homme qui n'en peut plus svp
Merci d'avance pour vos réponses !
Partager