返回类型的hql查询

时间:2014-03-31 15:45:46

标签: java authentication hql

我有一个检查用户有效性的功能,如下所示:

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不太专业,因此不知道查询将返回什么以及如何测试它。即使输入用户名密码,但不存在于DB中,它也会返回true。我甚至不确定hql查询是否正确。 请帮助。

1 个答案:

答案 0 :(得分:1)

尝试

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

 }