2014-03-31 169 views
0

我有一个函数来检查用户的有效性如下:返回类型

public boolean authenticate(String username, String password) { 

    try { 
     session = HibernateUtil.getSessionFactory().openSession(); 
     session.beginTransaction(); 

     String hql = "FROM LoginC L where L.userName=:uname and L.password=:pwd"; 
     Query query = session.createQuery(hql); 
     query.setParameter("uname", username).setParameter("pwd", password); 

//I am not sure how to proceed/check here? 
     List<LoginC> result = null; 
     result = query.list(); 
     if (null != result) { 
      validUser = true; 
     } else { 
      validUser = false; 
     } 

    } catch (HibernateException he) { 
     System.out.println("error authenticating "+username+" "+he.getMessage()); 
    } finally { 
     if (session != null) { 
      session.close(); 
     } 
    } 
    return validUser; 
} 

我不是等HQL专家,因此不知道该查询将返回什么,我怎么能测试它。即使输入用户名密码,数据库中不存在,它也会返回true。我甚至不确定hql查询是否正确。 请帮忙。

回答

1

尝试

if (null != result && result.size() != 0) { 

}