5.8.1. Настройка предопределенных JPQL запросов
В приложении на CUBA предопределенные JPQL запросы должны быть объявлены в файлах, определенных свойством приложения cuba.rest.queriesConfig. Свойство должно быть определено в модуле web или portal (например, в файле web-app.properties
):
cuba.rest.queriesConfig = +com/company/myapp/rest-queries.xml
Файл rest-queries.xml
должен находиться в главном пакете модуля web или portal (например, com.company.myapp
). Его содержимое определяется схемой rest-queries.xsd, например:
<?xml version="1.0"?>
<queries xmlns="http://schemas.haulmont.com/cuba/rest-queries.xsd">
<query name="carByVin" entity="ref$Car" view="carEdit">
<jpql><![CDATA[select c from ref$Car c where c.vin = :vin]]></jpql>
<params>
<param name="vin" type="java.lang.String"/>
</params>
</query>
<query name="allColours" entity="ref$Colour" view="_local">
<jpql><![CDATA[select u from ref$Colour u order by u.name]]></jpql>
</query>
<query name="carsByIds" entity="ref$Car" view="carEdit">
<jpql><![CDATA[select c from ref$Car c where c.id in :ids]]></jpql>
<params>
<param name="ids" type="java.util.UUID[]"/>
</params>
</query>
</queries>
Пример конфигурирования и исполнения запроса можно увидеть в разделе Выполнение JPQL-запроса (GET) и Выполнение JPQL-запроса (POST).
Платформа также предоставляет встроенный запрос all
для получения списка всех экземпляров некоторой сущности. Он может быть использован совместно с /count
чтобы получить общее количество экземпляров сущности, например:
http://localhost:8080/app/rest/v2/queries/sales$Order/all/count