Читать книгу Desarrollo de aplicaciones web con Jakarta EE - César Francisco Castillo - Страница 28
2.6.3 Consultas basadas en nombres
ОглавлениеCuando realizamos el mapeo objeto-relacional con la ayuda del asistente de Netbeans, se crea por defecto un conjunto de consultas con la anotación @ NamedQuery.
Por ejemplo, en la entidad Carrera encontramos las siguientes consultas:
A través de ellas podemos listar todas las carreras y buscar una carrera por su nombre o tipo. Pero, ¿qué ocurre si necesitamos obtener o realizar otras consultas y no se encuentran?
JPA nos permite crear consultas según nuestras necesidades y agregarlas a dicho conjunto, con lo que se evita así la repetición. Por ejemplo, podemos crear una consulta que se llame buscarPorIdFacultad y que retorne el listado de todas las carreras de una determinada facultad.
Para ello, lo primero que haremos será definirla mediante la anotación correspondiente y, luego, agregarla al conjunto:
@NamedQuery(name = “buscarPorIdFacultad”, query = “SELECT c FROM Carrera c WHERE c.idFacultad.idFacultad = ?1)
Una vez hayamos definido la consulta basada en nombre, la debemos crear mediante JPA utilizando el método createNamedQuery() del EntityManager, como se observa en el siguiente fragmento de código: