我希望通过 FIQL 支持来实现分页。我正在使用 apache cxf 和 JPA(Hibernate)。这是为其给出的示例示例http://cxf.apache.org/docs/jax-rs-search.html#JAX-RSSearch-JPA2.0
SearchConditionVisitor<Order, TypedQuery<Order>> visitor
= new JPATypedQueryVisitor<>(em, Order.class);
// connect FIQL cxf SearchCondition with our JPA visitor
searchCondition.accept(visitor);
// creeate JPA specific TypedQuery by our visitor
TypedQuery<Order> typedQuery = visitor.getQuery();
typedQuery.setFirstResult((page * perPage) - perPage);
typedQuery.setMaxResults(perPage);
// Run the query and return matching a complex FIQL criteria
return typedQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)
一切看起来都正常,包括搜索和分页。它看起来没有在生成 sql 日志时使用 order by 子句,并且似乎遵循数据库插入顺序。现在我想更改默认的排序顺序。例如,我希望按 Order id 字段降序排序。我怎样才能做到这一点?
我在服务器上有一个订单资源。url 看起来像http://example.net/order/1 上面的 url 上的 get 方法将返回整个订单对象,例如
{
"orderNo": "1",
"status": "order place",
"orderTimestamp": "2018-11-22 14:28:12",
"invoiceAddress": {
"salutation": "M",
"firstName": "Dieter",
"lastName": "Wolf",
"companyName": "",
"street": "Michaelkirchstr.",
"houseNo": "16",
"zipCode": "31604",
"city": "Raddestorf",
"countryIsoCode": "DEU",
"phone": "05763 82 60 80",
"email": "DieterWolf@armyspy.com"
},
"deliveryAddress": {}
"items": [
{
...
}
],
"returnItemsDetails": []
}
Run Code Online (Sandbox Code Playgroud)
现在我希望在同一 api 上提供修补方法,以便可以更新/添加一些详细信息,例如送货地址。要更新订单详细信息,可以在同一订单 url 上使用 patch http 方法请求以下请求
{
"deliveryAddress": {
"deliveryType": "CUSTOMER",
"salutation": "M",
"firstName": "Dieter",
"lastName": "Wolf",
"companyName": "",
"street": "Michaelkirchstr.",
"houseNo": …Run Code Online (Sandbox Code Playgroud)