Bonjour,
je travaille sur un projet JPA et je ne maîtrise pas vraiment ce framework, j'ai besoin de créer une requête qui m'importe des ventes, lorsque je la teste sur mon programme j’obtiens une liste et lorsque je la teste directement su ma base de donnes j’obtiens une liste qui n'est pas de même longueur!
voila ma requête JPA :
et voila la requête sql que je test directement sur la base de donnes:
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 OrderStatus orderstatus = OrderStatus.Invoiced; Activity act = saleSearch.getActivity(); Calendar dtCreateFrom = saleSearch.getDtCreationFrom(); Calendar dtTo = saleSearch.getDtCreationTo(); Calendar dtCreateTo = dtTo; dtCreateTo.add(Calendar.DAY_OF_YEAR, 1); Query query = em().createQuery("SELECT s FROM Sale s "+ " INNER JOIN s.offer o"+ " INNER JOIN s.order ord"+ " INNER JOIN o.product p"+ " WHERE o.activityId=:act"+ " AND ord.orderDate BETWEEN :dtCreateFrom AND :dtCreateTo"+ " AND ord.orderStatus =:status"); query.setParameter("status", orderstatus); query.setParameter("act", act.getId()); query.setParameter("dtCreateFrom", dtCreateFrom); query.setParameter("dtCreateTo", dtCreateTo); salesExpo = query.getResultList(); dtCreateTo.add(Calendar.DAY_OF_YEAR, -1);
bien sur je fais saisir les mêmes valeurs de date d’après ma page web pour la première requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT PRODUCTS.refproducts,SALES.PRODUCTPRICE, PRODUCTS.Name, OFFERS.Price,SUM(SALES.quantity), SUM(SALES.quantity * OFFERS.Price) FROM PRODUCTS INNER JOIN OFFERS ON PRODUCTS.refproducts = OFFERS.refproducts INNER JOIN SALES ON OFFERS.refOffers = SALES.refOffers INNER JOIN ORDERS ON ORDERS.reforders = SALES.reforders WHERE ORDERS.OrderStatus = 'invoiced' AND (ORDERS.dateorder BETWEEN '2011-04-15 00:00:00' AND '2011-04-16 00:00:00') AND OFFERS.refactivities = 1 GROUP BY PRODUCTS.refproducts, PRODUCTS.Name, OFFERS.Price, SALES.PRODUCTPRICE ORDER BY PRODUCTS.refproducts
Partager