Cette règle détecte les références au langage de requête de WebLogic. Il convient de réviser les références au langage de requête de WebLogic et de les convertir d'une manière appropriée pour les utiliser dans WebSphere Traditional et Liberty.
L'élément <weblogic-ql> indique une requête qui contient une extension WebLogic du langage de requête EJB 2.0 (EJB-QL). Des fonctionnalités EJB-QL standard sont utilisées dans le descripteur de déploiement ejb-jar.xml et des extensions du langage EJB-QL de WebLogic sont utilisées dans le fichier weblogic-cmp-rdbms-jar.xml. Des fonctions d'agrégation et de mise en ordre ainsi que des sous-requêtes sont généralement exploitées dans les requêtes mais, dans la mesure où d'autres extensions peuvent également être employées, vous devez toujours examiner tous les éléments <weblogic-ql> avec une grande attention.
WebSphere Application Server étend également les fonctionnalités du langage de requête EJB-QL mais, au lieu de définir un langage de requête distinct, WebSphere Application Server ajoute des fonctions d'agrégation, des fonctions de mise en ordre et des sous-requêtes à la syntaxe d'EJB-QL. WebSphere Application Server ajoute ces extensions à la syntaxe du langage EJB-QL. Vous pouvez donc utiliser EJB-QL et ses extensions dans l'élément <ejb-ql> standard, dans le fichier ejb-jar.xml.
Mappage d'orderbyL'extension de langage de requête WebLogic orderby est un mot clé qui fonctionne avec la méthode Finder pour spécifier l'ordre des résultats renvoyés suite à vos sélections. Vous pouvez également ordonner les résultats en fonction de plusieurs zones et les demander par ordre croissant ou par ordre décroissant.
<weblogic-ql>select object(o) from MeetingAutoservice o where o.idInternAutoservice = ?1 orderby o.numberMeeting</weblogic-ql>
<ejb-ql>select object(o) from MeetingAutoservice o where o.idInternAutoservice = ?1 order by o.numberMeeting</ejb-ql>
Mappage des fonctions d'agrégation et de sous-requête
L'extension du langage de requête de WebLogic subquery permet d'imbriquer une requête dans la clause WHERE d'une requête principale afin de renvoyer des données qui seront utilisées en tant que condition dans la requête principale pour limiter les données à récupérer. L'extension du langage de requête de WebLogic MAX renvoie la valeur maximum contenue dans la zone spécifiée. L'exemple suivant illustre une sous-requête et une fonction d'agrégation ainsi que sa correspondance dans WebSphere Application Server :
<weblogic-ql>select OBJECT(o) from MeetingAutoservice o where o.idInternAutoservice=?1 AND o.meetingNumber = (select MAX(p.meetingNumber) from MeetingAutoservice p where p.idInternAutoservice = ?1)</weblogic-ql>
<ejb-ql>select OBJECT(o) from MeetingAutoservice o where o.idInternAutoservice=?1 AND o.meetingNumber = (select MAX(p.meetingNumber) from MeetingAutoservice p where p.idInternAutoservice = ?1)</ejb-ql>
Plus d'informations sur EJB-QL sont disponibles dans cette rubrique :