Salut,
J'utilise
Hibernate version 3.1.3.
Je charge des "dossiers" via un outer join global et via ce outer join, je charge aussi des sections.
Toutes les données associées aux sections ne sont pas chargées par la même occasion.
Chaque section possède un ensemble d'élement et chaque élement possède lui aussi un ensemble de synonymes. Soit section=>element=>synonyme.
Dans Section.hbm :
Code:
<set name="listeElements"
cascade="all"
batch-size="10">
<key column="ID_SECTION"/>
<one-to-many class="Element"
/>
</set>
Dans Element.hbm :
Code:
<set
name="listeSynonymes"
cascade="all-delete-orphan"
inverse="true"
fetch="join"
lazy="false"
batch-size="10">
<key
column="ID_ELEMENT"/>
<one-to-many
class="Synonyme" />
</set>
Je voudrais qu'à chaque fois que j'appelle plusieurs fois section.getListeElements().size(), Hibernate charge aussi les synonymes rattachés aux éléments et produise le outer join suivant :
select ... from t_element, t_synonyme where id_element in (?, ?, ?...?)
* 1er idée : fetch="join" dans Element.hbm. Hibernate ne le prend pas en compte
* 2ème idée : lazy="false" dans Synonyme.hbm. Hibernate ne réagit pas non plus.
Hibernate réagit seulement aux directives de batch, mais pas à mes efforts via un "outer join" pour lui dire de charger les synonymes en même temps que les éléments sont chargés.
On dirait que "outer join" et batch ne font pas bon ménage ensemble.
Quelqu'un a une idée ?
Merci d'avance.
Cdlt,
Dominique