is not mapped 錯誤改正
阿新 • • 發佈:2017-05-08
figure open action void pen ble lai ordinary intra
我出現的錯誤是:oorg.hibernate.hql.ast.QuerySyntaxException: DEPT is not mapped [from DEPT]
配置文件如下:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cn.lex.entity"> <class name="Dept" table="DEPT"> <id name="deptno" column="deptno"> <generator class="native"/> </id> <property name="dname"></property> <property name="loc"></property> </class> </hibernate-mapping >
代碼如下:
package cn.lex.test; import cn.lex.entity.Dept; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.List; /** * Created by accp on 2017/1/9. */ public class SecondTest { Session session; Transaction tx; @Before public void before(){ Configuration cfg=new Configuration().configure(); SessionFactory factory=cfg.buildSessionFactory(); session=factory.openSession(); tx=session.beginTransaction(); } @Test public void page(){ String hql="from DEPT order by DEPTNO"; //創建query對象 Query query = session.createQuery(hql); //每頁顯示幾條數據 int pageSize=2; //設置第一頁 int pageIndex=1; //設置每頁顯示的最大記錄數 query.setMaxResults(pageSize); //設置從第幾條開始輸出 query.setFetchSize((pageIndex-1)*pageSize); List<Dept> list = query.list(); for (Dept dept:list) { System.out.println("部門編號:"+dept.getDeptno()); } } @After public void after(){ tx.commit(); session.close(); } }
而出現這個錯誤的根本原因是hql語法裏面是POJO(Plain Ordinary Java Object)對象而不是table.所以改成這樣就可以了:
List<Dept> list=session.createQuery("from Dept order by DEPTNO”).list();
特記於此!以備勿忘!
is not mapped 錯誤改正