hibernate.hql是对类进行查询的

    xiaoxiao2021-03-25  56

    Employees表的结构:

    Employee.Java代码:

    [java]  view plain  copy package com.qiuclass.persistent;      public class Employee{          private long eid;     private String ename;          public Employee(){ }          public Employee(String ename){       this.ename=ename;     }          private void setEid(long eid){       this.eid=eid;     }     private long getEid(){       return eid;     }          public void setEname(String ename){       this.ename=ename;     }     public String getEname(){       return ename;     }   }  

    Employee.hbm.xml 部分代码:

    [html]  view plain  copy <class name="com.qiuclass.persistent.Employee" table="EMPLOYEES"        lazy="true" select-before-update="true">       <id name="eid" column="EID" type="long">         <generator class="increment" />       </id>       <property name="ename" column="ENAME" type="string" />     </class>  

    主程序部分代码:

    [java]  view plain  copy public void createQuery(){     Session session=sessionFactory.openSession();     Transaction tx=session.beginTransaction();          Iterator iemp=session.createQuery("from EMPLOYEES").list().iterator();     while(iemp.hasNext()){       Employee emp=(Employee)iemp.next();       System.out.print(emp.getEname());     }     tx.commit();     session.close();   }  

    当代码编译到session.createQuery("from EMPLOYEES").list().iterator(); 就报错:  org.hibernate.hql.internal.ast.QuerySyntaxException: EMPLOYEES is not mapped [from EMPLOYEES]

    Hibernate.cfg.xml配置文件上的<mapping resource="com/qiuclass/persistent/Employee.hbm.xml"/> 相对应的文件没写错。

    开始时候一直在检查EMPLOYEES表各字段属性与Employee.java类属性是否不一致导致,也反复检查Employee.hbm.xml映射文件,都没找到原因。 后来经大牛指点,才知道hibernate.hql是对类进行查询的,EMPLOYEES是表名,Employee是类名,所以要改成 session.createQuery("from Employee").list().iterator();

    原来又是概念没搞清楚,折腾了头天 

    全篇转载:http://blog.csdn.net/qiustion/article/details/47910239

    转载请注明原文地址: https://ju.6miu.com/read-35124.html

    最新回复(0)