HQL-сессии в java

Как я могу получить пользователя, войдя в мою базу данных через сеанс ?? 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;
    }

Вы знаете, что в этом коде нет никакого смысла?

Antoniossss 18.08.2018 17:55
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
123
1

Ответы 1

Это просто не имеет смысла

    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

usersWithGivenLogin это переменная? какой тип?

Сома Тха 18.08.2018 18:09

Список чего-то. Вы мне скажите, что это такое.

Antoniossss 18.08.2018 18:12

Другие вопросы по теме