2011-08-17 33 views
10

我面臨異常:org.hibernate.hql.ast.QuerySyntaxException:Student6未映射[來自Student6 stud] 我的表名是Student6在sql server中數據庫和pojo類名是Student。org.hibernate.hql.ast.QuerySyntaxException:表名未映射

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而不是from Student6)。它不會以Object[]實例的形式返回行,但會返回實體實例。

Hibernate是一個ORM:對象關係映射器。這個想法是使用對象而不是關係數據。您應該重新閱讀Hibernate reference manual

+0

謝謝JB Nizet。 – user783160

+0

@JB Nizet - 感謝您的好回答我太快反應了我沒有注意到'學生'和'Student6'之間的區別:) –

+0

謝謝,我搜索和搜索,這就是答案。 – Fabii