Bonjour,
J'ai un objet TemplateValue associé par un many-to-many à des objets Template1Value. Lorsque je filtre TemplateValue par une propriété de Template1Value, j'obtiens bien la liste désirée mais lorsque j'accède à la sous liste Template1Value, aucun filtre n'est appliqué. Comment peut-on faire ce filtre ?
TemplateValue.hbm.xml
<class name="TemplateValue" table="TEMPLATE" >
<id name="id" column="ID">
<generator class="increment"/>
</id>
<property name="title"/>
<set name="templates1" table="TEMPLATE_TEMPLATE1" lazy="false" >
<key column="TEMPLATE_ID"/>
<many-to-many column="TEMPLATE1_ID" class="Template1Value"/>
</set>
</class>
}
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 Criteria criteria = this.session.createCriteria(TemplateValue.class); Criteria criteriaTemplate1 = criteria.createAlias("templates1", "t1"); criteriaTemplate1.add( Restrictions.like( "t1.title", "toto")); List list = criteria.list(); //mes objets template sont bien filtrés for (int i=0;i<list.size();i++){ TemplateValue templateValue = (TemplateValue) list.get(i); log.debug("id:"+templateValue.getId()); log.debug("title:"+templateValue.getTitle()); Iterator it=templateValue.getTemplates1().iterator(); //mon itérator n'a pas filtré mes templates1 while (it.hasNext()){ Template1Value template1Value = (Template1Value) it.next(); log.debug("\t id:"+template1Value.getId()); log.debug("\t title:"+template1Value.getTitle()); }
Même en utilisant lazy="false" rien à faire.
Quelqu'un a une idée ?
MERCI
Partager