首页 > 解决方案 > 如何使用 Panache 更新已经持久化的实体?

问题描述

我正在用华丽的 quarkus 编写 JaxRS 资源,我注意到我无法让 PUT/PATCH 请求工作。更具体地说,我似乎无法更新数据库中以前持久化的实体。我想我做错了什么,但后来我尝试了 quarkus-quickstart for panache,可以在这里找到,我注意到PUT在那里也不起作用。

它所做的是使用该findById方法获取一个实体,更改该实体,然后返回该更改的实体。但它实际上并没有在数据库中改变它。对于快速入门,我按照 README 中的建议使用 docker 设置数据库。

更新已持久化的 Panache 实体的推荐方法是什么?

示例请求流

这些是我通过 quarkus 快速入门得到的请求和响应:

  1. GET本地主机:8080/水果。

    • 回复:[ {"persistent": true, "id": 1, "name": "Cherry"} ]
  2. PUT本地主机:8080/fruits/1,正文:{ "name": "edited name" }

    • 回复:{ "persistent": false, "id": 1, "name": "edited name" }
  3. GET本地主机:8080/水果
    • 回复:[ {"persistent": true, "id": 1, "name": "Cherry"} ]

标签: quarkus

解决方案


我们可以用“我确认这是 0.12.0 中的错误。它已在 master 中修复,即将到来的 0.13.0 修复它。”来自评论。


推荐阅读