liferay
Utilisation d'une requête SQL dynamique et personnalisée dans Liferay
Recherche…
Introduction
Il existe des scénarios dans le traitement de la couche de service dans liferay, lorsque nous devons interroger la base de données avec trop de clauses ou traiter plusieurs tables. Dans de tels cas, nous utilisons soit:
1) Requête dynamique (wrapper sur l'API critères Hibernate)
2) Requêtes SQL personnalisées
Remarques
Les références:
Utilisation de la requête dynamique dans Liferay
Pour la plupart des scénarios impliquant des entités de la couche de service, nous pouvons nous débrouiller avec les appels de service par défaut, avec l'aide des chercheurs. Pour les scénarios simples impliquant plusieurs entités, nous allons utiliser l'API de requête dynamique. pour l'API Criteria utilisée dans Hibernate.Il peut être utilisé pour les cas où nous devons générer une requête dynamique, qui n'est pas très complexe par nature, en utilisant plusieurs constructions de l'API. Pour commencer, certaines des constructions les plus couramment utilisées sont: DynamicQueryFactoryUtil -Utilisé pour la construction de la requête
RestrictionsFactoryUtil Utilisé pour fournir des restrictions sur les champs pour la comparaison avec une certaine valeur pour limiter les résultats correspondant à une certaine valeur ou dans une plage, etc.
ProjectionFactoryUtil -Utilisé pour fournir des projections pour obtenir des champs qui feront partie du résultat de la recherche, au lieu de fournir l'entité entière, fournira uniquement certains champs ou appliquer la fonction d'agrégation (telle que min.max, avg) sur le même.
PropertyFactoryUtil -Utilisé pour la comparaison de certaines propriétés de la classe d'entité pour effectuer la comparaison avec d'autres champs d'une requête
L'implémentation de ces classes est présente dans le package dao.orm.jpa avec toutes les méthodes disponibles