Java Struts2+;Hibernate查询结果为空

Java Struts2+;Hibernate查询结果为空,java,sql,hibernate,struts2,Java,Sql,Hibernate,Struts2,我试图从查询中收集结果,但当我在控制台中检查日志时,列表为空。登录操作可以很好地工作,但获取查询结果的操作有些不正常。我还使用size()进行检查,但它也带来了零大小。我错过了什么 参见我的dao类: UserDAO.java public User userLogin(String email, String password) { Session session = HibernateUtil.getSessionFactory().openSession(); Trans

我试图从查询中收集结果,但当我在控制台中检查日志时,列表为空。登录操作可以很好地工作,但获取查询结果的操作有些不正常。我还使用size()进行检查,但它也带来了零大小。我错过了什么

参见我的dao类:

UserDAO.java

 public User userLogin(String email, String password) {
    Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction tx = session.beginTransaction();
   User userinfo = new User();

    try {

        String hql = "select * from user where email =:email and password =:password";
        SQLQuery query = session.createSQLQuery(hql);
        query.addEntity(User.class);
        query.setParameter("email", email);
        query.setParameter("password", password);

        List rows = query.list();

        System.out.println("Total Number Of Records : " + rows.size());

        Iterator myItr = rows.iterator();

        while (myItr.hasNext()) {
            Object  ui = (Object) myItr.next();
            userinfo = (User) ui;
            System.out.println("Username : " + userinfo.getUsername());

        }
        if (userinfo != null) {
            System.out.println("User Retrieved from DB::" + userinfo);
        }
        tx.commit();
    } catch (Exception e) {
        if (tx != null) {
            tx.rollback();
        }
        e.printStackTrace();
    } finally {
        // close your session
        session.close();
    }

    return userinfo;
}

尝试使用
查询
休眠并使用
uniqueResult()


我猜您的查询实际上没有返回任何内容。userinfo将永远不会为NULL,因为它被实例化为“User userinfo=new User();”。调试电子邮件和密码的值,然后尝试在查询管理器中对数据库运行相同的查询,这将有助于发现问题。
String hql = "from user where email =:email and password =:password";
Query query = session.createQuery(hql);
query.setParameter("email", email);
query.setParameter("password", password);
User userinfo = (User) query.uniqueResult();