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

问题描述 投票:2回答:2

我一直试图让我的脑袋缠绕在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的替代方案?

mongodb spring-roo spring-data-mongodb
2个回答
0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.