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