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 : 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;
 
	}
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