Bonjour,
j'ai besoin de personnaliser une requette dynamique JPQL (appelée NamedQuery je pense), pour une appliation web avec JPA.
J'ai lu des tutos mais y'a une partie que j'arrive simplement pas à comprendre: (pour simplifier la question voilà un example)
j'ai l'entié Parent , et je veux afficher la liste des X Premiers Parents dont X une valeur à saisir et recuperer après au niveau de la page JSP.
voilà l'entité Parent:
la class ParentDao:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Entity @Table @NamedQueries({ @NamedQuery(name = "Parent.getXPremierParent", query = " SELECT e FROM Parent e WHERE e.ParentId < :x ")}) public class Parent implements Serializable { ...}
L'interface ParentDaoLocal:
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 @Stateless public class ParentDao implements ParentDaoLocal { @PersistenceContext private EntityManager em; ... @Override public List<Parent> getXPremierParent(int x) { return em.createNamedQuery("Parent.getXPremierParent").getResultList(); setParameter("x", x); /* <<<---- JE SAIS PAS SI J'AI LE DROIT DE METTRE CETTE LIGNE*/ } }
Et voila le Servlet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @Local public interface ParentDaoLocal { ... List<Parent> getXPremierParent(int x); }
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 @WebServlet(name = "ParentServletJPQLTest", urlPatterns = {"/ParentServletJPQLTest"}) public class ParentServletTest extends HttpServlet { @EJB private ParentDaoLocal ParentDao; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int xParentId = Integer.parseInt(request.getParameter("xParentId")); List<Parent> Parents = ParentDaoTest.getXPremierParent(xParentId); //????????? System.out.println(Parents.toString()); //Pour tester. request.setAttribute("Parents", Parents); request.getRequestDispatcher("XPremierParent.jsp").forward(request, response); }
Partager