使用Spring Data防止MongoDB中的重复(Spring Roo)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Spring Data防止MongoDB中的重复(Spring Roo)相关的知识,希望对你有一定的参考价值。

我一直试图让我的脑袋缠绕在MongoDB上,就像Spring一样,所以我决定在Spring Roo开始一个小项目。

在我的项目中,我将我的用户登录数据存储到MongoDB。问题是注册过程创建了一个新的User对象并将其存储在MongoDB中,尽管我在loginId字段上有@Unique,但它有创建重复的倾向。

现在,我知道问题的一部分是我从JPA / RDBMS的角度思考问题,并且MongoDB不是关系数据库,因此有一组不同的参数可供使用,但我无法找到指导不仅仅是一个非常简单的示例代码。

首先,可以使用Spring / Other注释,更重要的是,从Spring-world处理MongoDB时常用的注释?其次,在处理需要“独特”的文档时,通常如何做到这一点?您是否首先在唯一字段上搜索以确保它首先不存在,然后插入?第三,在JPA-land中,我可以使用注释@PrePersist和@PreUpdate进行最后一分钟的数据操作,例如已经更新的MD5哈希密码,或者在存储之前添加/更新“上次修改”日期。我知道这是JPA-isms,但是我仍然可以使用它们,如果没有,是否有可用于Spring Data / MongoDB的替代方案?

答案

我最终在我的实体上使用@Id注释,它指示哪个字段用作id字段。只要该字段是唯一的,写入后续更新将正确替换现有实体,而不是添加新实体。

另一答案

我最终创建了另外的方法来检查是否存在与我们输入的数据具有重复值的数据。如果它存在,我返回失败,提到存在重复值。否则它将保存新输入的值

以上是关于使用Spring Data防止MongoDB中的重复(Spring Roo)的主要内容,如果未能解决你的问题,请参考以下文章

基于spring boot的项目中的spring data mongodb配置

使用 Spring Data MongodB 更新嵌入式 mongodb 文档中的数组字段?

乐观锁定的重试机制(spring data + JPA)

用Spring data查询mongodb的问题,求解答

如何使用Spring Data可伸缩地将元素插入MongoDB中的集合字段?

防止 Django 模板表单中的重定向