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:
Quizz.IDENTIFIANT correspondant au mapping hibernate de l'identifiant
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
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; }
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
Partager