2011-08-17 12 views
10

私は例外に直面しています:org.hibernate.hql.ast.QuerySyntaxException:Student6はマップされていません[Student6 studから] myテーブル名はStudent6 in sql serverデータベースとpojoクラス名はStudentです。org.hibernate.hql.ast.QuerySyntaxException:tablenameがマップされていません

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(); 
    } 
} 
+0

マッピングを追加する必要があります – ssedano

答えて

32

クエリはSQLクエリではありません。これはHQLクエリです。したがって、テーブル名を使用するのではなく、エンティティクラス名(の代わりにfrom Student)を使用してください。そして、Object[]の形式で行を返しませんが、エンティティインスタンスを返します。

HibernateはORMです:オブジェクトリレーショナルマッパー。アイデアは、リレーショナルデータではなくオブジェクトを使用することです。 Hibernate reference manualを再度読んでください。

+0

ありがとうJB Nizet。 – user783160

+0

@JBニジェット - 良い答えをありがとう私は応答が速すぎました。私は '学生'と '学生6'の違いに気付きませんでした:) –

+0

ありがとう、私はseachと検索とこれは答えでした。 – Fabii

関連する問題