你如何用 Panache 更新一个已经存在的实体?

How do you update an already persisted entity with Panache?

我正在用 panache 在 quarkus 中编写 JaxRS 资源,我注意到我无法获得 PUT/PATCH 工作请求。更具体地说,我似乎无法更新数据库中以前保存的实体。我认为我做错了什么,但后来我尝试了可以​​找到的 quarkus-quickstart for panache here, and I noticed that the PUT 在那里也不起作用。

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

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

示例请求流程

这些是我使用 quarkus quickstart 得到的请求和响应:

  1. GET localhost:8080/水果。

    • 响应:[ {"persistent": true, "id": 1, "name": "Cherry"} ]
  2. PUT localhost:8080/fruits/1,正文:{ "name": "edited name" }

    • 响应:{ "persistent": false, "id": 1, "name": "edited name" }
  3. GETlocalhost:8080/水果
    • 响应:[ {"persistent": true, "id": 1, "name": "Cherry"} ]

我们可以用 "I confirm that it is a bug in 0.12.0. It's fixed in master and the upcoming 0.13.0 fixes it. " 来自评论来结束这个问题。