3.9.11.8. 执行 JPQL 查询(POST)

也可以使用 POST HTTP 请求执行查询。当需要将集合作为查询参数值传递时,可以使用 POST 请求。在这种情况下,REST 查询配置文件中查询参数的类型必须以方括号结尾:java.lang.String[]java.util.UUID[] 等。

  1. <?xml version="1.0"?>
  2. <queries xmlns="http://schemas.haulmont.com/cuba/rest-queries.xsd">
  3. <query name="ordersByIds" entity="sales$Order" view="order-edit-view">
  4. <jpql><![CDATA[select o from sales$Order o where o.id in :ids and o.status = :status]]></jpql>
  5. <params>
  6. <param name="ids" type="java.util.UUID[]"/>
  7. <param name="status" type="java.lang.String"/>
  8. </params>
  9. </query>
  10. </queries>

查询参数值必须作为 JSON map 在请求体中传递:

  1. {
  2. "ids": ["c273fca1-33c2-0229-2a0c-78bc6d09110a", "e6c04c18-c8a1-b741-7363-a2d58589d800", "d268a4e1-f316-a7c8-7a96-87ba06afbbbd"],
  3. "status": "ready"
  4. }

POST 请求 URL:

http://localhost:8080/app/rest/v2/queries/sales$Order/ordersByIds?returnCount=true