4.6.2.2.4. Выполнение JPQL запроса для выборки данных

Для выполнения запроса необходимо выполнить GET запрос {host:port}/app-portal/api/query.<format>?e=<entity>&s=<sessionId>&q=<encoded query string>&param1=<value 1>$param1_type=<type 1>&paramN=<value N>&paramN_type=<type N>&view=<viewName>&firstResult=<firstResult>&maxResults=<maxResults> с параметрами:

  • e − имя сущности

  • q − строка запроса к данным на JPQL. Запрос может содержать параметры. Их значения указываются как значения одноименных параметров HTTP запроса.

  • s − идентификатор текущей сессии

  • view − опционально, представление, с которым требуется загружать данные

  • max − опционально, максимальное количество строк возвращаемых данных (аналогично JPA setMaxResults)

  • first − опционально, номер первой строки возвращаемых данных (аналогично JPA setFirstResult)

format задает формат получения результата. Принимает два значения: xml или json.

Например:

http://localhost:8080/app-portal/api/query.json?e=sales$Customer&q=select+c+from+sales$Customer+c&s=748e5d3f-1eaf-4b38-bf9d-8d838587367d&view=_local
http://localhost:8080/app-portal/api/query.json?e=sales$Customer&q=select+c+from+sales$Customer+c+where+c.name=:name&s=748e5d3f-1eaf-4b38-bf9d-8d838587367d&name=Петров

Для каждого из передаваемых параметров можно явно указать его тип, добавив в запрос одноименный параметр с суффиксом _type. Например:

http://localhost:8080/app-portal/api/query.json?e=sales$Customer&q=select+c+from+sales$Customer+c+where+c.name=:name&s=748e5d3f-1eaf-4b38-bf9d-8d838587367d&name=Петров&name_type=string

Указание типа параметра не является обязательным, но позволяет избежать ошибок парсинга, если система не сможет определить тип.

В общем случае тип стоит указывать лишь для строковых параметров, которые по какой-либо причине имеют формат более узких типов (дат, чисел, uuid), но должны интерпретироваться именно как строки.

Список доступных типов можно увидеть в описании мета-модели (пункт меню Помощь −> Модель данных) или получив HTML-описание модели.