提供外部PK时,针对软删除实体的POST请求发生冲突

时间:2019-03-21 15:34:07

标签: rest spring-boot jpa spring-data-jpa api-design

我正在与一个客户端进行非常特殊的集成,该客户端通过RESTful API向我们发送数据。他们正在设置POST数据的PK以匹配自己的PK,并消除了对其侧面进行映射的需求。

我们收到的数据只是其表中与我们项目相关的子集。我们已经在所有API中实现了软删除。在他们的系统中存档的数据会触发我们的删除。问题是,当该数据未存档时该怎么办。他们正在发送表中存在的PK的POST请求(因为仅将旧的归档实体标记为删除),并且正确地看到409 CONFLICT代码。

如果我们生成了自己的密钥,这并不重要,但是对于每个POST,在它们的侧面都没有映射。我们还可以通过存储所有数据并复制其存档功能来解决该问题。或者,我们可以提供软删除和硬删除。最后一个选项很难实现,因为我们在Spring中使用带有@SQLDelete批注的JPA覆盖了默认的em.remove功能。

此行为是否存在可接受的设计?我还找不到这种将PK与软删除重用的特殊组合的示例。

PS,这是我在这里的第一篇文章,所以请让我知道是否有更好的方法来询问此类问题或其他所需信息

0 个答案:

没有答案