У меня есть метод, который обновляет информацию о пользователе. Я хочу проверить, существует ли уже электронная почта в базе данных, и если это так, выдать исключение, которое я обрабатываю. Пока все хорошо, я проверяю, есть ли в базе данных тот же адрес электронной почты, но проблема в том, что если существующий пользователь пытается обновить свой профиль и оставляет свой адрес электронной почты таким же, метод найдет существующий адрес электронной почты и вернет, что «сообщение уже находится в использовать». Как проверить, если это не тот же пользователь?
public User updateUser(UserDTO updateUser) throws IllegalArgumentException {
System.out.print(updateUser.getId());
User user = this.userRepository.findOneById(updateUser.getId());
if (user == null) {
user = new User();
}
if (updateUser.getEmail() != null && !updateUser.getEmail().equals("")) {
User userCheck = this.userRepository.findOneByEmail(updateUser.getEmail());
if (userCheck == null) {
user.setEmail(updateUser.getEmail());
} else {
throw new IllegalArgumentException("Email already in use!");
}
}
return this.userRepository.save(user);
}