我正面临异常:org.hibernate.hql.ast.QuerySyntaxException:Student6未映射[来自Student6 stud] 我的表名是sql server数据库中的Student6,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();
}
}
答案 0 :(得分:34)
您的查询不是SQL查询。这是一个HQL查询。因此,它不应使用表名,而应使用实体类名(from Student
而不是from Student6
)。它不会以Object[]
个实例的形式返回行,但会返回实体实例。
Hibernate是一个ORM:一个对象关系映射器。我们的想法是使用对象而不是关系数据。您应该重新阅读Hibernate reference manual。