Подтвердить что ты не робот

Вывести результат гибернации в список объектов

У меня есть спящий вызов в моем DAO, который выглядит следующим образом

List<Associate> associate = (List<Associate>)session.createSQLQuery("SELECT * FROM associates WHERE fk_id = :id AND fk_associate_id = (SELECT id FROM users WHERE fk_user_type = 2)").setParameter("id", id).list();

Я получаю сообщение об ошибке, говоря, что я не могу передать результирующий список ассоциированному типу модели. Я не понимаю, почему это происходит. Я возвращаю только поля, которые находятся в таблице associates.

4b9b3361

Ответ 1

Вам нужно указать класс сущности, результат должен быть преобразован в addEntity(), потому что вы выполняете SQL-запрос, который ничего не знает о сущностях:

List<Associate> associate = (List<Associate>) session.createSQLQuery(
    "SELECT * FROM associates WHERE fk_id = :id AND fk_associate_id = (SELECT id FROM users WHERE fk_user_type = 2)")
    .addEntity(Associate.class)
    .setParameter("id", id).list(); 

См. также: