【发布时间】:2018-11-29 00:26:40
【问题描述】:
这里是实体:
@Document
@Data
public class ApplicationUser {
private String name;
@Indexed(unique = true)
private String email;
private String organization = null;
// other fields
}
我使用他们的电子邮件获取此用户,然后更改他们的姓名。我使用 ApplicationUserRepository 的 autowired 实例。
ApplicationUser applicationUser = applicationUserRepository.findByEmail("abc@gmail.com");
applicationUser.setName("John Doe 2");
然后我尝试在数据库中再次更新这个实体:
applicationUserRepository.save(applicationUser);
我在现场电子邮件中收到重复键错误。为什么会这样? 据我从文档中得知,如果 ObjectId 相同,则 save 方法会更新同一个文档。既然我没有更改 objectId 那么为什么它在保存过程中尝试创建一个新的 ApplicationUser 呢?
【问题讨论】:
标签: spring-boot spring-data spring-mongo