Вот Сущность:
@Document
@Data
public class ApplicationUser {
private String name;
@Indexed(unique = true)
private String email;
private String organization = null;
// other fields
}
Я получаю этого пользователя, используя его электронную почту, а затем меняю его имя. Я использую autowired экземпляр ApplicationUserRepository.
ApplicationUser applicationUser = applicationUserRepository.findByEmail("[email protected]");
applicationUser.setName("John Doe 2");
Затем я снова пытаюсь обновить этот объект в базе данных:
applicationUserRepository.save(applicationUser);
Я получаю повторяющуюся ошибку ключа в поле электронной почты. Почему это происходит? Насколько я понял из документации, метод save обновляет один и тот же документ, если ObjectId тот же. Поскольку я не изменил objectId, то почему он пытается создать нового ApplicationUser во время сохранения?