如何通过会话登录数据库来获取用户? 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;
}
答案 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
中的任何列名