小编ann*_*nna的帖子

如何在 JPA 中使用 TypedQuery 更改顺序

我希望通过 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 字段降序排序。我怎样才能做到这一点?

java hibernate jpa cxf jpql

4
推荐指数
1
解决办法
5711
查看次数

对于 patch http 方法,REST 完整 api 应该响应什么?

我在服务器上有一个订单资源。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)

rest

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

cxf ×1

hibernate ×1

java ×1

jpa ×1

jpql ×1

rest ×1