Проверьте, существует ли электронная почта в базе данных, но игнорируйте, если пользователь такой же - PullRequest
0 голосов
/ 14 мая 2018

У меня есть метод, который обновляет информацию о пользователе. Я хочу проверить, существует ли уже электронная почта в базе данных, и если это так, выдать исключение, которое я обрабатываю. Пока все хорошо, я проверяю, есть ли в базе данных тот же адрес электронной почты, но проблема в том, что если существующий пользователь пытается обновить свой профиль и оставляет свой адрес электронной почты таким же, метод найдет существующий адрес электронной почты и вернет, что «сообщение уже находится в использовать». Как проверить, если это не тот же пользователь?

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...