Buenas prácticas en las consultas con JPA
- Área: Capa de Persistencia
- Grupo: Java
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
- Tecnologías: JPA
Las siguientes indicaciones mejoran la eficiencia y el rendimiento de las consultas dentro de la especificación JPA
Pautas
Título | Carácter |
---|---|
Campos BFILE con JPA | No Recomendada |
Consultas con nombre | Recomendada |
Parámetros en las consultas | Obligatoria |
Nombres para las consultas | Recomendada |
Gestores de entidades fuera de transacciones | Obligatoria |
Consultas con propiedades individuales | Recomendada |
Beans de sesión sin estado | Obligatoria |
Actualizaciones y borrados masivos | Obligatoria |
Campos BFILE con JPA
No usar campos BFILE con JPA
No se recomienda el uso de campos BFILE de Oracle en JPA ya que no existe actualmente ningún motor de persistencia capaz de mapear este tipo. En caso de ser necesario, utilizar JDBC para obtener dichos campos
Consultas con nombre
Utilizar las consultas con nombre siempre que sea posible
Se recomienda utilizar las consultas con nombre para evitar la sobrecarga en el análisis y la generación del SQL. Además, es más eficiente que el uso de consultas dinámicas y hace cumplir las mejores prácticas de la utilización de parámetros de consulta.
Parámetros en las consultas
Utilizar parámetros en las consultas
Utilizar parámetros de consulta para garantizar el rendimiento óptimo de la base de datos, minimizando el número de SQL analizadas por ésta. Además, ayudan a evitar problemas de seguridad causados por la concatenación de los valores en cadenas de consulta.
Nombres para las consultas
Establecer un nombre para la consulta
Para evitar colisiones entre los nombres de las consultas se recomienda anteponer al nombre de la consulta el nombre de la entidad que se devuelve separado por un punto.
Gestores de entidades fuera de transacciones
Usar gestores de entidades fuera de transacciones para las consultas si los datos no serán modificados
Las sentencias que devuelven entidades que no van a ser modificadas deben ejecutarse utilizando un gestor de entidades (EntityManager) fuera de una transacción.
Consultas con propiedades individuales
Seleccionar propiedades individuales en consultas o tablas complejas
Se recomienda seleccionar propiedades individuales de las entidades que utiliza una consulta, en lugar de recuperar toda la entidad, cuando las relaciones entre las entidades o las tablas son complejas.
Beans de sesión sin estado
Utilizar beans de sesión sin estado para mejorar la eficiencia
Se deben utilizar beans de sesión sin estado para mejorar la eficiencia del uso de la memoria y los recursos en el servidor, ya que estos componentes pueden ser compartidos entre varios clientes y no requieren mantener un estado entre las diferentes invocaciones y son creados y destruidos por el contenedor.
Actualizaciones y borrados masivos
Ejecutar las operaciones de actualización y borrado masivos como transacciones aisladas
Las operaciones de actualización o borrado masivos se realizarán en una transacción aislada para evitar que se puedan introducir otros cambios que puedan provocar un impacto negativo en el contexto de la persistencia.
Contenidos relacionados
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0680 | Acceso a campos BFILE con JDBC | Ejemplo | Permitido |