gpt4 book ai didi

spring-boot - Spring Data MongoRepository 保存导致重复键错误

转载 作者:行者123 更新时间:2023-12-04 12:06:38 27 4
gpt4 key购买 nike

这是实体:

@Document
@Data
public class ApplicationUser {
private String name;
@Indexed(unique = true)
private String email;
private String organization = null;
// other fields
}

我使用他们的电子邮件获取该用户,然后更改他们的姓名。我使用 ApplicationUserRepository 的 Autowiring 实例。
ApplicationUser applicationUser = applicationUserRepository.findByEmail("abc@gmail.com");
applicationUser.setName("John Doe 2");

然后我尝试在数据库中再次更新这个实体:
applicationUserRepository.save(applicationUser);

我在现场电子邮件中收到重复的 key 错误。为什么会这样?
据我从文档中获得,如果 ObjectId 相同, save 方法会更新同一个文档。既然我没有更改 objectId 那么为什么它在保存期间尝试创建一个新的 ApplicationUser ?

最佳答案

我得到了解决方案。
创建实体时,我必须明确声明 Id。

这是实体:

@Document
@Data
public class ApplicationUser {
@Id
private ObjectId _id;
private String name;
@Indexed(unique = true)
private String email;
private String organization = null;
// other fields
}

关于spring-boot - Spring Data MongoRepository 保存导致重复键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50153457/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com