Bonjour,
une question qui fait suite a mon dernier post
je dispose d'actuellement trois tables (dans une base de donnees Oracle) dont je ne parviens a ecrire le mapping.
Ce que je souhaite a faire est la representation des clefs primaires de ces tables
TASQUES_DOCUMENTS ------ DOCUMENTS
TTD_SYS ------------------------ TDO_SYS
TDO_CODI-------------------- TDO_CODI
TTQ_CODI
TASQUES_DOCUMENTS --- TASQUES
TTD_SYS ------------------ TTQ_SYS
TDO_CODI
TTQ_CODI ---------------- TTQ_CODI
J'ai donc defini DOCUMENTS:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <hibernate-mapping package="net.gencat.uid.model.param.document"> <class name="Document" table="UIDT_DOCUMENTS"> <composite-id> <key-property name="dosys" column="TDO_SYS" /> <key-property name="docodi" column="TDO_CODI" /> </composite-id> </class> </hibernate-mapping>
puis TASQUES :
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 <hibernate-mapping package="net.gencat.uid.model.param.tasca"> <class name="Tasca" table="UIDT_TASQUES"> <composite-id> <key-property name="tqsys" column="TTQ_SYS" /> <key-property name="tqcodi" column="TTQ_CODI" /> </composite-id> <set name="tascaDocuments" inverse="true" lazy="true" order-by="TDO_CODI"> <key> <column name="TTQ_CODI"/> <column name="TTQ_SYS"/> </key> <one-to-many class="net.gencat.uid.model.param.tasca.TascaDocument"/> </set> </class> </hibernate-mapping>
et enfin TASQUES_DOCUMENTS :
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 <hibernate-mapping package="net.gencat.uid.model.param.tasca" > <class name="TascaDocument" table="UIDT_TASQUES_DOCUMENTS"> <composite-id name="id" class="TascaDocumentPK"> <key-property name="tdsys" column="TTD_SYS"/> <key-many-to-one name="tasca" class="net.gencat.uid.model.param.tasca.Tasca"> <column name="TTQ_SYS"/> <column name="TTQ_CODI"/> </key-many-to-one> <key-many-to-one name="document" class="net.gencat.uid.model.param.document.Document"> <column name="TDO_SYS"/> <column name="TDO_CODI"/> </key-many-to-one> </composite-id> </class> </hibernate-mapping>
Vous l'aurez certainement compris, c'est sur ce dernier que j'ai des soucis. Quand j'essaye d'acceder a travers mon set qui est dans Tasques cela me declenche une erreur de type SQLGrammarException. Certainement parce que ce mapping n'est pas bon.
J'ai bien cree les classes associes, ainsi que celle qui contient la clef primaire de Tasques_Documents.
La difficulte dans ce cas de figure est que la cle ttd_sys est utilisee comme etant une des clefs composees de la classe Tasca, mais aussi de classe Documents.
Avez-vous une idee ? Avec les composants ?
Partager