Bonjour a tous,
J'ai 2 classes et 3 tables MySQL dont ci-joint la description SQL et le mapping hibernate ci-dessous...
Pour information, la relation entre la table FACTURE et FACTURE_ARTICLE s'effectue par le biais du champ 'S_NODE' car il peut y avoir plusieurs factures comportant les memes articles !
La table SEQUENCE est uniquement presente pour generer un ID qui sera stocke dans la table FACTURE et la table FACTURE_ARTICLE me permettant d'effectuer une jointure !
Lorsque j'effectue une requete pour obtenir la liste des factures, je n'arrive pas (apres appel a la fonction getArticles() ;-))) a recuperer la liste des articles d'une facture.
Aucune erreur mais la collection retournee est vide ;-(((((
En ajoutant des 'traces', je m'apercois qu'il execute bien la requete pour le mapping mais aucun enregistrement n'est present en retour.
Une idee ????
Code:
Hibernate: select this_.F_NODE as F1_16_0_, this_.S_NODE as S2_16_0_, this_.F_ORDER as F3_16_0_ from FACTURE this_
<STDOUT>
ID:1 Sequence:25
Hibernate: select articles0_.S_NODE as S1_1_, articles0_.S_NODE as S1_18_0_, articles0_.FA_EXPORT as FA2_18_0_ from FACTURE_ARTICLE articles0_ where articles0_.S_NODE=?
<STDOUT>
Code:
========================== SQL ======================
CREATE TABLE SEQUENCE (
S_NODE INT UNSIGNED NOT NULL
) TYPE=InnoDB;
INSERT INTO SEQUENCE (S_NODE) VALUES (1);
CREATE TABLE FACTURE (
F_NODE INT UNSIGNED NOT NULL AUTO_INCREMENT,
S_NODE INT UNSIGNED NOT NULL,
F_ORDER INT UNSIGNED NOT NULL,
PRIMARY KEY(F_NODE,S_NODE)
) TYPE=InnoDB AUTO_INCREMENT=1;
CREATE INDEX F_S ON FACTURE (S_NODE ASC);
CREATE TABLE FACTURE_ARTICLE (
S_NODE INT UNSIGNED NOT NULL,
FA_EXPORT INT UNSIGNED NOT NULL,
PRIMARY KEY(S_NODE),
FOREIGN KEY (S_NODE) REFERENCES FACTURE(S_NODE) ON DELETE CASCADE
) TYPE=InnoDB;
========================== SQL ======================
======================== MAPPING ====================
<hibernate-mapping>
<class name="Facture" table="FACTURE">
<id name="node" type="integer">
<column name="F_NODE"/>
<generator class="native"/>
</id>
<property name="sequence" type="integer">
<column name="S_NODE" not-null="true"/>
</property>
<property name="order" type="int">
<column name="F_ORDER" not-null="true"/>
</property>
<set name="articles" table="FACTURE_ARTICLE">
<key>
<column name="S_NODE" not-null="true"/>
</key>
<one-to-many class="ItemFA"/>
</set>
</class>
</hibernate-mapping>
###############################################
<hibernate-mapping>
<class name="ItemFA" table="FACTURE_ARTICLE">
<id name="sequence" type="integer">
<column name="S_NODE"/>
</id>
<property name="export" type="int">
<column name="FA_EXPORT" not-null="true"/>
</property>
<many-to-one name="facture" class="Facture" insert="false" update="false">
<column name="S_NODE" not-null="true"/>
</many-to-one>
</class>
</hibernate-mapping>
======================== MAPPING ====================