JPA: requette JPQL dynamique
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:
Code:
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 {
...} |
la class ParentDao:
Code:
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*/
}
} |
L'interface ParentDaoLocal:
Code:
1 2 3 4 5 6 7
| @Local
public interface ParentDaoLocal {
...
List<Parent> getXPremierParent(int x);
} |
Et voila le Servlet:
Code:
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);
} |