5.8. 执行 JPQL 查询(POST)
也可以使用 POST HTTP 请求执行查询。特别是需要将集合作为查询参数值传递时,可以使用 POST 请求。此时,REST 查询配置文件中查询参数的类型必须以方括号结尾:java.lang.String[]
,java.util.UUID[]
等。
<?xml version="1.0"?>
<queries xmlns="http://schemas.haulmont.com/cuba/rest-queries.xsd">
<query name="ordersByIds" entity="sales$Order" view="order-edit-view">
<jpql><![CDATA[select o from sales$Order o where o.id in :ids and o.status = :status]]></jpql>
<params>
<param name="ids" type="java.util.UUID[]"/>
<param name="status" type="java.lang.String"/>
</params>
</query>
</queries>
查询参数值必须作为 JSON map 在请求体中传递:
{
"ids": ["c273fca1-33c2-0229-2a0c-78bc6d09110a", "e6c04c18-c8a1-b741-7363-a2d58589d800", "d268a4e1-f316-a7c8-7a96-87ba06afbbbd"],
"status": "ready"
}
POST 请求 URL:
http://localhost:8080/app/rest/v2/queries/sales$Order/ordersByIds?returnCount=true