Hibernate异常:org.hibernate.hql.internal.ast.QuerySyntaxException,同时从表中检索记录

时间:2012-12-19 14:18:00

标签: hibernate hql

在Hibernate 4.0中,我想使用session.createQuery("from dbemployee").list();从表中检索记录 但是Hibernate显示异常:

  

Hibernate Exception:org.hibernate.hql.internal.ast.QuerySyntaxException:dbemployee未映射[来自dbemployee] **

我的POJO课程是员工

public class Employee implements Serializable {

private static final long serialVersionUID = 1L;
private String empId;
private String empName;
private long empSalary;

public Employee() {
    super();
}

// getters and setters

}

Oracle 11g中的我的表dbemployee是:

dbemployee:
EMPID varchar2(20)
EMPNAME varchar2(20)
EMPSALARY number(11);

Employee.hbm.xml是

<hibernate-mapping>
  <class name="beanclass.Employee" table="dbemployee">

  <id name="empId" type="java.lang.String" column="EMPID">
  <generator class="assigned"></generator>
   </id>
   <property name="empName"  column="EMPNAME"  type="java.lang.String"/>
   <property  name="empSalary" column="EMPSALARY" type="java.lang.Long" />
  </class>

  </hibernate-mapping>

请帮助解决此异常。 提前致谢

2 个答案:

答案 0 :(得分:4)

您的查询应该是:

 session.createQuery("from Employee").list();

您必须在查询中使用类名,而不是表名。

答案 1 :(得分:3)

将您的查询设为

 session.createQuery("from Employee").list();

session.createQuery("from beanclass.Employee").list();

在像Hibernate和JPA这样的ORM中,当不处理本机查询时,你应该在查询中使用对象/类名。