Buscar..


Introducción

Hay situaciones cuando se trata de la capa de servicio en el ciclo de vida útil, cuando necesitamos consultar la base de datos con demasiadas cláusulas o tratar con varias tablas. En tales casos, usamos cualquiera de los siguientes:

1) Consulta dinámica (envoltura en la API de criterios de hibernación)

2) consultas SQL personalizadas

Observaciones

Referencias:

  1. SQL personalizado
  2. Consulta dinámica

Usando la consulta dinámica en Liferay

Para la mayoría de los escenarios que involucran entidades de la capa de servicio, podemos conformarnos con las llamadas de servicio predeterminadas, también con la ayuda de los buscadores. Para escenarios simples que involucran múltiples entidades, avanzamos hacia el uso de la API de consulta dinámica. Esta es una API de contenedor. para la API de criterios utilizada en Hibernate. Puede usarse para casos en los que necesitamos generar consultas dinámicas, que no son de naturaleza muy compleja, utilizando varias construcciones de la API. Para empezar, algunas de las construcciones más utilizadas son: DynamicQueryFactoryUtil para construir consultas

RestrictionsFactoryUtil utiliza para proporcionar restricciones en los campos de comparación con un determinado valor para reducir los resultados que coinciden con un determinado valor o dentro de un rango, etc.

ProjectionFactoryUtil utiliza para proporcionar proyecciones para obtener campos que formarán parte del resultado de la búsqueda, es decir, en lugar de proporcionar la entidad completa, proporcionará solo ciertos campos o aplicará la función de agregación (como min.max, avg) en el mismo.

PropertyFactoryUtil utiliza para la comparación de algunas propiedades de la clase de entidad para realizar mayormente comparsion con otros campos de una consulta

La implementación de estas clases está presente en el paquete dao.orm.jpa con todos los métodos disponibles.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow