Salut,
J'ai bossé un peu sur l'import/export en XML. J'ai commité mes modifs
mais le bilan n'est pas très bon.
Export
Lorsque le modèle comporte une relation 1-n, l'export plante a cause
d'une ClassCastException.
Les collections sont mappées telles que :
<bag name="blabla" lazy="true" node="blabla" embed-xml="true">
<key column="calendar"/>
<one-to-many class="org.codelutin.test.BlablaImpl"
node="topiaId" embed-xml="false"/>
</bag>
(le champ embed-xml sert à indiquer s'il faut imbriquer le contenu ce
qui est déconseillé mais peut-etre nécessaire pour les collections)
Ce qui donne à l'export :
<monEntity topiaId="jdlqklsjdlqskjd">
<blabla>
<topiaId>blabla#123#1</topiaId>
<topiaId>blabla#123#2</topiaId>
</blabla>
</monEntity>
Import
J'ai des ClassCastException des que le XML contient des liens entre des
entités. Je pense qu'Hibernate considère mon 'blabla#123#1' comme mon
entité et non comme son topiaId. Ce qui me fait dire que le XML généré
devrait être tel que :
<monEntity topiaId="jdlqklsjdlqskjd">
<blablas>
<blabla topiaId="blabla#123#1"/>
<blabla topiaId="blabla#123#2"/>
</blablas>
</monEntity>
... mais je n'ai pas réussit à obtenir ceci.
Tout ce que j'ai pu obtenir c'est :
<monEntity topiaId="jdlqklsjdlqskjd">
<blabla>blabla#123#1</blabla>
<blabla>blabla#123#2</blabla>
</monEntity>
... ce qui est mieux mais je pense insuffisant (à vérifier tout de même).
Enfin, dernier point, pour un modèle ultra simple (sans 1-n et sans
relation entre les entités (paye ton modèle !)) l'export se fait sans
encombre et l'import "semble" se faire sans encombre. Cependant, aucun
insert n'est fait pas Hibernate et aucune entité n'est ensuite visible
dans la base... :(
Arno.