我有更新用户信息的方法。我想检查数据库中是否已存在电子邮件,如果是这种情况则抛出我处理的异常。到目前为止,我正在检查数据库中是否有相同的电子邮件,但问题是如果现有用户尝试更新他的个人资料并留下他的电子邮件相同,该方法将找到他现有的电子邮件并返回“电子邮件已经在使用”。如何检查这是不是同一个用户?
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);
}