zoukankan      html  css  js  c++  java
  • is not mapped 错误改正

    我出现的错误是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();

    特记于此!以备勿忘!

  • 相关阅读:
    作用域 + this指向 的一道没面试题
    找出数组中最大的值
    统计数组中每个值出现的次数, 统计对象中每个字符出现的次数
    uniapp在h5 和 APP 端兼容性 bug 解决方案
    数组去重的常用方法,利用Promise实现函数按序执行
    momentjs实现距离当前时长并且回现中文效果
    SQL server 上机练习题
    JS 9
    JS 8
    JS 7
  • 原文地址:https://www.cnblogs.com/xieweikai/p/6826805.html
Copyright © 2011-2022 走看看