Toto pravidlo zjistí odkazy na dotazovací jazyk WebLogic. Odkazy dotazovacího jazyka serveru WebLogic musí být přezkoumány a řádně převedeny pro použití v produktu WebSphere Traditional a Liberty.
Prvek <weblogic-ql> uvádí dotaz, který obsahuje rozšíření specifické pro server WebLogic do dotazovacího jazyka EJB 2.0 Query Language (EJB-QL). Standardní funkce jazyka EJB-QL se používají v deskriptoru implementace ejb-jar.xml a rozšíření WebLogic EJB-QL se používají v souboru weblogic-cmp-rdbms-jar.xml. Řazení, agregační funkce a poddotazy se obvykle používají v dotazech, ale protože je možné použít i jiné rozšíření, vždy pečlivě zkontrolujte všechny prvky <weblogic-ql>.
Aplikační server WebSphere Application Server také rozšiřuje funkce jazyka EJB-QL, ale místo toho, aby definoval samostatný kód QL, poskytuje produkt WebSphere Application Server pořadí, poddotazy a agregační funkce pro syntaxi EJB-QL. Aplikační server WebSphere Application Server rozšiřuje syntaxi EJB-QL, aby zahrnoval tato rozšíření. Proto můžete použít EJB-QL a jeho rozšíření ve standardním prvku <ejb-ql> v souboru ejb-jar.xml.
Mapování řazení podlePřípona orderby WebLogic QL je klíčové slovo, které pracuje s metodou vyhledávače k určení pořadí výsledků, které jsou vráceny z vašich výběrů. Můžete také řadit podle více polí a určit, zda mají být vráceny výsledky ve vzestupném nebo sestupném pořadí.
<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>
Mapování poddotazů a agregačních funkcí
Rozšíření WebLogic QL poddotazu umožňuje vložit dotaz v rámci klauzule WHERE hlavního dotazu a vrátit data pro použití v hlavním dotazu jako podmínku pro další omezení dat, která mají být načtena. Rozšíření MAX WebLogic QL vrací maximální hodnotu uvedeného pole. Tento příklad zobrazuje poddotaz a agregační funkci a mapování na server 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>
Další informace o EJB-QL jsou k dispozici v tomto tématu: