Bonjour
je veux récupérer le nombre de chaque type de tickets enregistrés dans la base dans une liste pendant une durée précis en fait j'ai réussi à les récupérer séparement mais je ne parviens pas à les récupérer dans une liste (en fait j'ai une entité ticket qui a un attribut status de type string qui peut avoir certains types ("invalid"-"closed"-"resolved"-"invalid")
voilà ce que j'ai fait:
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
31
32
33
34
35
36
37
	public Number countTicketResolved(Date start, Date end,String resolved)
 
	{
		String query = "select count(ticket.id) from TicketEntity ticket where lower(ticket.status)='"+resolved.toLowerCase()+"'"+" and ticket.dateCreation >= :debut and ticket.dateCreation<= :fin";
		javax.persistence.Query q = ticketDao.getEntityManager().createQuery(query);
		q.setParameter("debut", start);
		q.setParameter("fin", end);
		Number countResult = (Number)q.getSingleResult();
		System.out.println("Count resolved ticket result:" + countResult);
		return countResult;
	}
 
	public Number countTicketInvalid(Date start, Date end,String invalid)
 
	{
 
		String query = "select count(ticket.id) from TicketEntity ticket where lower(ticket.status)='"+invalid.toLowerCase()+"'"+" and ticket.dateCreation >= :debut and ticket.dateCreation<= :fin";
		javax.persistence.Query q = ticketDao.getEntityManager().createQuery(query);
		q.setParameter("debut", start);
		q.setParameter("fin", end);
		Number countResult = (Number) q.getSingleResult();
		System.out.println("Count invalid ticket result:" + countResult);
		return countResult;
	}
 
	public Number countTicketClosed(Date start, Date end,String closed)
 
	{
		String query = "select count(ticket.id) from TicketEntity ticket where lower(ticket.status) ='"+closed.toLowerCase()+"'"+" and ticket.dateCreation between :debut and :fin";
		javax.persistence.Query q = ticketDao.getEntityManager().createQuery(
				query);
		q.setParameter("debut", start);
		q.setParameter("fin", end);
		Number countResult = (Number) q.getSingleResult();
		System.out.println("Count closed ticket result:" + countResult);
		return countResult;
	}
ce code me retourne des résultats juste mais moi je veux récuperer toutes ces valeurs dans une list donc j'ai essayé le case when mais ça n'a pas marché :
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
	public List CountTicketsByStatus(Date start, Date end,String invalid,String cc) {
		String query = "select count(ticket.id) from TicketEntity ticket where ticket.dateCreation between :debut and :fin";
		query=query + "CASE WHEN(ticket.Status=Invalid)" +
				      " CASE WHEN(ticket.Status=New)";
		javax.persistence.Query q = ticketDao.getEntityManager().createQuery(query);
		q.setParameter("invalid", invalid);
		q.setParameter("New",cc);
		q.setParameter("debut", start);
		q.setParameter("fin", end);
		List countResult =q.getResultList();
		for (int i = 0; i < countResult.size(); i++) {
			System.out.println("les éléments de la liste");
			Integer t =(Integer)countResult.get(i);
			System.out.println(t);
		}
		return countResult;
svp pouvez vous m'aidez?