Java中的HQL会话

时间:2018-08-18 15:52:47

标签: java hibernate hql

如何通过会话登录数据库来获取用户? UserDAO

public UserDataSet getUDSLogin(String login)  {
        session = sessionFactory.openSession();
        Transaction transaction = session.getTransaction();
        transaction.begin();
        Query query = session.createQuery("SELECT id FROM UserDataSet ");
        List<UserDataSet> uds = query.list();
        query.setParameterList("login", uds); //get user by login

        session.getTransaction().commit();
        //Restrictions.eq("login", login).getValue();
        //session.getTransaction().rollback();
        session.close();
        return (UserDataSet) uds;
    }

1 个答案:

答案 0 :(得分:0)

这只是没有道理

    Query query = session.createQuery("SELECT id FROM UserDataSet ");
    List<UserDataSet> uds = query.list(); // you get all user ids
    query.setParameterList("login", uds); // you set non-existent parameter to query that already have been ran

此外,这里不需要交易。

 Query query = session.createQuery("SELECT id FROM UserDataSet uds WHERE uds.login:=login");
query.setParameter("login",login);
usersWithGivenLogin=query.list();

只需将uds.login更改为UserDataSet中的任何列名