Última Actualización abril 21st, 2021 12:14 PM
JPA Join Fetch es una de las opciones de las que dispone el estándar de JPA a la hora de reducir el número de consultas que se generan contra la base de datos. Algo que es bastante habitual y que degrada el rendimiento. Vamos a ver un ejemplo ,para ello partiremos de dos clases Java(Experto e Impartición) que están relacionadas (un Experto imparte charlas).
El código Java de las clases utilizando anotaciones JPA será :
Vamos a construir el programa principal que nos selecciona los Expertos para luego recorrer sus imparticiones.
Si ejecutamos el programa podremos ver el resultado en la consola:
Los datos se imprimen , pero estamos realizando 3 consultas para obtenerlos .En primer lugar se seleccionan todos los Expertos y por cada Experto se realiza una consulta para saber sus imparticiones. Este es el problema clásico de las n+1 Queries. Cuando existan 100 imparticiones , se lanzarán 101 consultas. Vamos a solventar este problema utilizando JPA Join Fetch.
Para ello nos bastará con modificar la consulta de JPA que estamos utilizando y obligarla a que incluya las imparticiones.
Ahora la consulta es “select distinct e from Experto e join fetch e.imparticiones” obligando a JPA a incluir las imparticiones a través de un JOIN.
Ahora una sola consulta es suficiente ya que nos hemos apoyado en JPA Join Fetch. Recordemos que aunque los frameworks de persistencia aportan mucho , hay que saber utilizarlos. Un mal uso de estos frameworks puede generar los peores resultados.
Te esperamos en los próximos artículos en donde hablaremos mas acerca de estos temas que hoy en día son de importancia e interés en el mundo de la tecnología.
Powered by Facebook Comments
No related posts.
Abr 21, 2021 0
Abr 20, 2021 0
Abr 19, 2021 0
Abr 17, 2021 0
Abr 17, 2021 0
Abr 10, 2021 0
Abr 08, 2021 0
Mar 29, 2021 0
Abr 21, 2021 0
Abr 20, 2021 0
Abr 19, 2021 0