org.hibernate.hql.ast.QuerySyntaxException: имя таблицы не отображается - PullRequest
10 голосов
/ 17 августа 2011

Я столкнулся с исключением: org.hibernate.hql.ast.QuerySyntaxException: Student6 не отображается [из Student6 stud] мое имя таблицы Student6 в базе данных сервера sql, а имя класса pojo - Student.

    public static void main(String[] args) {
    Configuration configuration = new Configuration();
    SessionFactory  sessionFactory = configuration.configure().buildSessionFactory();
    Session session = sessionFactory.openSession();
    try {
        String SQL_QUERY ="from Student6 stud";
             Query query = session.createQuery(SQL_QUERY);
             for(Iterator it=query.iterate();it.hasNext();)             {
             Object[] row = (Object[]) it.next();
             System.out.println("STUDENT_ID: " + row[0]);
             System.out.println("STUDENT_NAME: " + row[1]);
             System.out.println("ADDRESS_STREET: " + row[2]);
             System.out.println("ADDRESS_CITY: " + row[3]);
             System.out.println("ADDRESS_STATE: " + row[4]);
             System.out.println("ADDRESS_ZIPCODE: " + row[5]);                               }

    } catch (HibernateException e) {
        transaction.rollback();
        e.printStackTrace();
    } finally {
        session.close();
    }
}

1 Ответ

34 голосов
/ 17 августа 2011

Ваш запрос не является запросом SQL. Это запрос HQL. Таким образом, он должен использовать не имена таблиц, а имена классов сущностей (from Student вместо from Student6). И он не будет возвращать строки в виде Object[] экземпляров, но будет возвращать экземпляры сущностей.

Hibernate - это ORM: объектно-реляционный картограф. Идея состоит в том, чтобы использовать объекты, а не реляционные данные. Вам следует перечитать справочное руководство Hibernate .

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