Salut J'utilise Hibernate 3.2 avec un 1.6 JDK et Mysql 5.0 J'essaie d'utiliser les critères api pour assembler un filtre dynamique. Cependant, lorsque j'ajoute une Restriction sur un Ensemble d'Enums qui est une propriété de mon objet Critères, j'obtiens une org.hibernate.exception.GenericJDBCException.Filtrer les critères d'hibernation sur un ensemble de valeurs enum
mon code est comme ceci:
public class FollowUp {
...
public Set<AdminCategory> getAdminCategories() {...}
public void setAdminCategories(Set<AdminCategory> _arg) { ... }
}
Mon mise en veille prolongée fichier de mappage a un ensemble de valeurs Enum comme spécifié dans la documentation de mise en veille prolongée: http://docs.jboss.org/hibernate/stable/core/reference/en/html/collections.html#collections-ofvalues. Le fichier (FollowUp.hbm.xml ) est comme ce
<hibernate-mapping>
<typedef class="dao.util.HibernateAdminCategoryType" name="main-category" />
<class name="FollowUp" table="follow_up">
<!-- other properties here -->
<set name="mainCategories" table="follow_up_main_categories" fetch="join" lazy="false">
<key column="fup_id"/>
<element column="identifier" type="main-category"/>
</set>
<!-- other stuff -->
</class>
</hibernate-mapping>
le code de filtre de critères est comme ceci:
public void runFilter(FollowUpFilter _filter) {
Criteria criteria = this.getSession().createCriteria(FollowUp.class);
if (_filter.hasMainCategories()) {
criteria.add(Restrictions.in("mainCategories", _filter.getMainCategories()));
}
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
criteria.setProjection(Projections.rowCount());
Integer count = (Integer) criteria.uniqueResult();
_filter.setTotalSize(count);
}
Quand je lance mes tests (avec sortie sql) Je reçois l'erreur suivante :
Statement parameter 1 not set.
org.hibernate.exception.GenericJDBCException: could not execute query
la sortie SQL est la suivante:
select
count(*) as y0_
from
follow_up this_
where
this_.id in (
?
)
Est-ce que quelqu'un connaît la manière correcte de filtrer sur un ensemble de valeurs enum dans un critère (dans Hibernate 3.2)?
Vive Simon