java - 检查数据库中是否已经存在电子邮件,但如果用户相同则忽略
问题描述
我有更新用户信息的方法。我想检查数据库中是否已经存在电子邮件,如果是这种情况则抛出我处理的异常。到目前为止一切顺利,我正在检查数据库中是否有相同的电子邮件,但问题是如果现有用户尝试更新他的个人资料并让他的电子邮件保持不变,该方法将找到他现有的电子邮件并返回“电子邮件已经在利用”。如何检查这是否不是同一个用户?
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);
}
解决方案
推荐阅读
- javascript - 复选框禁用角度
- asp.net-core - 在 Visual Studio 2019 中无法连接到 SQL Server Express
- ros - ROS桥服务器
- amazon-web-services - AWS Quicksight 上的嵌套平均值
- php - 错误消息:从空值创建默认对象
- swift - 使用枚举案例的关联值呈现视图
- php - 通过首选项覆盖 Magento_SalesRule ResourceModel 会引发错误:创建对象时发生类型错误
- c - 铿锵声在iOS上找不到内置的C头文件
- reactjs - 如何为材质 UI 多选和简单选择组件编写测试用例
- html - 如何在 Angular 中隐藏图表或 div 的一部分?