HQL ошибка в предложении выбора - PullRequest
0 голосов
/ 15 июля 2009

Когда я использую предложение HQL select, возникает следующая ошибка .student - это таблица mysql. Ошибка: Hibernate: выберите studentcla0_.vStudentName как col_0_0_ из студента studentcla0_ java.lang.String

Ниже приведен код:

public static void querySubject(Session session)
        {
            String sql_query="select stud.strStudentName from StudentClass as stud";
            Query query1=session.createQuery(sql_query);

        for(Iterator it=query1.iterate();it.hasNext();)
        {
            Object[] row = (Object[]) it.next();
            System.out.println("Subject Name:"+row[0]);

        }

        return;
    }

Ответы [ 3 ]

0 голосов
/ 15 июля 2009

Просто для подтверждения - в вашей базе данных есть таблица с именем «student», и в ней есть столбец с именем «vStudentName», который является каким-то типом строки? Сопоставление завершено и привело к переводу этого SQL:

select studentcla0_.vStudentName as col_0_0_
from student studentcla0_

Работает ли это напрямую с вашей базой данных или там тоже ошибка?

0 голосов
/ 15 июля 2009

Когда вы выбираете одно значение (будь то свойство или объект), Hibernate будет возвращать это значение напрямую; не будет заключено в массив Object. Подробнее здесь . Итак, ваш код должен быть:

for(Iterator it=query1.iterate(); it.hasNext(); ) {
    System.out.println("Subject Name:"+ it.next());
}
0 голосов
/ 15 июля 2009

это hql или sql. Если sql попробуйте:

session.createSQLQuery(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...