我有一个网络应用程序。只有用户可以使用由不同客户端创建的用户名和密码进入应用程序。具有相同用户名的用户可以使用不同的密码进入应用程序。 现在我的代码返回具有相同用户名的所有用户,但只接受顶部位置的用户。为剩下的用户提供错误。
public User findbyUserName(String username)
{
Criteria crit = getSessionFactory().getCurrentSession().createCriteria(User.class);
crit.add( Restrictions.eq("username", username));
List<User> list=crit.list();
if(list!=null && list.size()>0)
return (User)list.get(0);
else
return null;
}
请帮助我。
答案 0 :(得分:1)
如果您使用相同的用户名但使用不同的密码,则可以修改findByUserName以返回整个用户列表
public List<User> findbyUserName(String username)
{
Criteria crit = getSessionFactory().getCurrentSession().createCriteria(User.class);
crit.add(Restrictions.eq("username",username));
return crit.list();
}
或者您可以通过用户名和密码进行搜索
public User findbyUserNameAndPassword(String username,String password)
{
Criteria crit =getSessionFactory().getCurrentSession().createCriteria(User.class);
crit.add(Restrictions.eq("username",username);
crit.add(Restrictions.eq("password",password);
try{
return (User)crit.uniqueResult();
}
catch(Exception ex){
//you have same user with same password twice
}
}