Не использовать конструкции языка запросов EJB, специфичные для WebLogic

Это правило находит ссылки на язык запросов WebLogic. Все ссылки на язык запросов WebLogic необходимо изучить и преобразовать для использования в WebSphere traditional и Liberty.

Элемент <weblogic-ql> задает запрос, использующий применяемое в WebLogic расширение языка запросов EJB 2.0 (EJB-QL). Стандартный язык EJB-QL используется в файле описания ejb-jar.xml, а расширения EJB-QL WebLogic используются в файле weblogic-cmp-rdbms-jar.xml. Упорядочение, функции агрегирования и подзапросы являются стандартными элементами запросов, однако могут использоваться и другие расширения, поэтому необходимо внимательно изучить все элементы <weblogic-ql>.

WebSphere Application Server также использует расширения языка EJB-QL, однако вместо того чтобы применять свой язык запросов, WebSphere Application Server добавляет функции упорядочения, агрегирования и подзапросов в синтаксис EJB-QL. Для добавления этих возможностей WebSphere Application Server расширяет синтаксис EJB-QL. Это значит, что любые функции EJB-QL и его расширения можно использовать в стандартном элементе <ejb-ql> файла ejb-jar.xml.

Преобразование orderby

Расширение языка запросов WebLogic orderby - это ключевое слово, которое применяется в сочетании с методом Finder, чтобы определить порядок результатов, возвращаемых в выборке. Допускается упорядочение по нескольким полям и возврат результатов, упорядоченных по возрастанию или по убыванию.

Преобразование подзапросов и функции агрегирования

Расширение языка запросов WebLogic subquery позволяет встраивать запрос в блок WHERE основного запроса для возврата данных в основной запрос, отвечающих определенному условию, что позволяет еще больше ограничить набор извлекаемых данных. Расширение языка запросов WebLogic MAX возвращает максимальное значение указанного поля. В следующем примере показан подзапрос и функция агрегирования, а также то, во что они преобразуются в WebSphere Application Server:

Дополнительная информация об EJB-QL приведена в следующем разделе: