【发布时间】:2012-02-05 10:06:30
【问题描述】:
我目前正在开发一个社交网站,并且我目前正在实施用户可以更改其密码的部分。我正在使用实体管理器用新密码刷新数据库的内容。下面是实现的代码。
final Implementation user = em.find(Implementation.class, username);
if((user!=null) && user.getPassword().equals(hash(username,oldPassword))){
user.setPassword(hash(username,newPassword));
em.refresh(user);
}else{
throw new ChangePasswordException();
}
但是,当我再次尝试登录时,必须使用旧密码,否则,如果提供了新密码,它会告诉您:密码不匹配。有谁知道为什么会这样?我尝试先从数据库中删除用户,然后再次保留新用户。但是,由于用户名不是唯一的,因为用户没有从数据库中删除,因此生成了 EJB 异常。
非常感谢您的帮助
【问题讨论】:
-
它适用于 thomas 建议的合并...非常感谢
标签: java database ejb entitymanager