【问题标题】:Hibernate Exception: org.hibernate.hql.internal.ast.QuerySyntaxException, while retrieving records from tableHibernate 异常:org.hibernate.hql.internal.ast.QuerySyntaxException,同时从表中检索记录
【发布时间】:2012-12-19 14:18:00
【问题描述】:

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

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

我的 POJO 类是 Employee

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>

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

【问题讨论】:

  • 您的连接设置文件在哪里。你连接错误

标签: hibernate hql


【解决方案1】:

您的查询应该是:

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

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

【讨论】:

    【解决方案2】:

    将您的查询设为

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

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

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

    【讨论】:

    • 这正是我写的:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多