【问题标题】:Identify Spring MVC DTO识别 Spring MVC DTO
【发布时间】:2020-08-11 06:39:58
【问题描述】:

我在我的项目中使用了 Spring 框架,我坚持要保存 DTO 的标识。我有一个@RestController PUT 方法端点。我需要实现逻辑:如果一个实体存在而不是在 DB 上覆盖,则创建一个新实体。因此,如果客户端将提交 DTO 2 次,它将在 DB 中出现 2 个重复的 DTO。我看到的唯一通过 ID 识别的选项(实际上,如果 id 存在,Spring Data 如何开箱即用地运行,然后覆盖实体的值)。但是,如何向客户端隐藏此 ID?谢谢。

P.S:为所有字段创建唯一索引并按所有字段比较 DTO 不是我的解决方案。 非常感谢。

【问题讨论】:

  • 请分享您的代码:您尝试了什么?

标签: java spring spring-mvc spring-data-jpa spring-data


【解决方案1】:

在 DTO 的 ID 上注释 @JsonIgnore 将解决您向客户端隐藏 ID 的问题。最好的方法是将该 DTO 映射到 Entity 并进行进一步的操作。 您可以在this链接上查看更多详细信息。

【讨论】:

  • 在这种情况下,如果客户端将编辑 DTO 的某些属性,并尝试再次保存它,看起来 id 也会被 Spring 忽略并创建新实体,不是是吗?
  • 需要有一个键来定义您的实体的唯一性,并防止您的数据出现可共享给客户端的重复项。
猜你喜欢
  • 2019-01-08
  • 2021-06-13
  • 2015-06-23
  • 2015-09-04
  • 1970-01-01
  • 2017-03-06
  • 2015-04-03
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多