Restrictions.In dans Criteria avec List
Bonjour à tous,
Un problème étrange se pose à moi aujourd'hui.
Je veux requeter sur ma base à partir de l'API Criteria. Dans mon DAO, je reçois en paramètres une liste d'objets Long, correspondant à des identifiants en base.
Je pensais donc effectuer une requete dont voici le code pour ma criteria:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| public List listeQuizzPublie(String[] listeIdentifiantQuizz) throws MetierException{
List listeQuizz = null;
DetachedCriteria criteria = DetachedCriteria
.forClass(Quizz.class);
if (listeIdentifiantQuizz!=null){
List nouvelleListeIdentifiant = new ArrayList();
for(int i=0; i<listeIdentifiantQuizz.length; i++){
nouvelleListeIdentifiant.add(new Long(listeIdentifiantQuizz[i]));
}
criteria.add(Restrictions.in(Quizz.IDENTIFIANT,nouvelleListeIdentifiant));
criteria = criteria.addOrder(Order.asc(Quizz.ORDRE));
listeQuizz = (List) getHibernateTemplate()
.findByCriteria(criteria);
}
else{
return null;
}
if (listeQuizz.isEmpty()) {
return null;
}
return listeQuizz;
} |
Quizz.IDENTIFIANT correspondant au mapping hibernate de l'identifiant
et nouvelleListeIdentifiant étant ma liste de Long
Si j'ai deux identifiants en base correspondant à deux Long passé en paramètres, il ne m'en retourne cependant qu'un seul, le premier (identifiant le plus petit). Quelqu'un voit d'où pourrait provenir mon erreur de codage?
Merci à vous