Ejercicios sesión 7: Consultas
Añadiendo consultas
1. Descarga el proyecto jpa-sesion7-web.
2. Vamos a completar el código, añadiendo las consultas necesarias. Todas las consultas a rellenar están en la clase PaginaHtmlDAO
Método 1:
Collection<PaginaHtml> findAllPaginasHtml()
El método findAllPaginasHtml() devuelve una colección con todas las instancias PaginaHtml creadas.
Método 2:
Collection<PaginaHtml> findPaginasHtmlTag(String cadena)
El método findPaginasHtmlTag(cadena) devuelve una colección con todas las páginas que tienen asociadas una etiqueta que comienza por la cadena. En JPQL es posible hacer consultas sobre atributos de texto utilizando expresiones regulares. Por ejemplo, la siguiente expresión devolvería todas las revistas cuyo título comienza por 'J'.
SELECT x FROM Magazine x WHERE x.title LIKE 'J%'
Método 3:
Collection<PaginaHtml> findPaginasHtmlTagStrict(String cadena)
El método findPaginasHtmlTagStrict(cadena) devuelve una colección con todas las páginas que tienen asociadas una etiqueta cuyo texto coincide con la cadena.
Método 4:
Collection<PaginaHtml> findPaginasHtmlConMasTagsDe(int veces)
El método findPaginasHtmlConMasTagsDe(veces) devuelve una colección con aquellas páginas que tienen asociadas más etiquetas que las indicadas en el parámetro veces.
3. Añade al DAO TagDAO los siguientes métodos, implementando los que consideres necesarios como consultas JPQL:
Método 1:
Collection<Tag> findTagsComienzanPor(String cadena)
El método findTagsComienzanPor(cadena) devuelve una colección de aquellas etiquetas cuyo texto comienza por la cadena que pasamos como parámetro.
Método 2:
Tag findTagMasUsada()
El método findTagMasUsada() devuelve la etiqueta con más ocurrencias.
(*Opcional) Método 3:
List<Tag> findTagsUsadasMasDe(int veces)
El método findTagsUsadasMasDe(veces) devuelve una lista ordenada por número de ocurrencias (de mayor a menor) con aquellas etiquetas que tienen más ocurrencias que el argumento veces que se pasa por parámetro.
4. Añade por último en el DAO AutorDAO las siguientes consultas:
Método 1:
Collection<Tag> findTagsAutor(Autor autor)
El método findTagsAutor(autor) devuelve una colección con todos los tags (distintos) usados por el autor que se pasa como parámetro.
(*Opcional) Método 2:
Collection<Mensaje> findMensajeAutorTag(Autor autor, String cadena)
El método findMensajeAutorTag(autor,tag) devuelve una colección de los mensajes asociados al autor que están asociados también a alguna página con una etiqueta que comienza por cadena.