在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>
请帮助解决此异常。 提前致谢
答案 0 :(得分:4)
您的查询应该是:
session.createQuery("from Employee").list();
您必须在查询中使用类名,而不是表名。
答案 1 :(得分:3)
将您的查询设为
session.createQuery("from Employee").list();
或
session.createQuery("from beanclass.Employee").list();
在像Hibernate和JPA这样的ORM中,当不处理本机查询时,你应该在查询中使用对象/类名。