我遇到了Hibernate异常

   

     真是郁闷,今天想用Hibernate的实现对数据库的增删查改,但是就是报异常不断啊!呵呵,为什么?就是在主键的问题上,我用主键的生成形式是:Sequence时就报IllegalArgumentException occurred while calling setter of hibernatePOJO.Table1.id这样的异常!我把主键的生成方式改成assign时就报数据格式的转化异常,这真是把我急坏了!弄了一下午,终于知道问题出在什么地方了,是因为我数据库中的数据是long类型的,而我在程序中的那个POJO类中定义的属性是int类型的,int类型不能转化为long类型,所以我就把程序中的所有的数据都改为long类型的就行了!呵呵,我是高兴啊!^_^!!

         弄个oracle就是在eclipse中连接不上,就是不知道在哪出毛病了,自己仔细检查了一下才知道是因为监听没有打开啊!呵呵,即学习怎么手动打开监听,学习了一个命令很管用的!就是在命令提示符中输入:lsnrctl start,启动监听就ok了,但是还是不能解决我的问题,到底是怎么了呢?我在查一下我的监听的配置,我把所有的localhost全都改成了我的ip真正的地址,结果完全正常的连接上了!^_^!!

   在后来的练习中出现了一个异常我又弄了老长的时间:就是:org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of hibernat_pojo.Person.id 这样的异常真是弄的好烦啊,但是我还是有点点耐心的就慢慢的找,发现我在pojo的持久化对象中生命的变量的类型是int类型的,但是在创建了hibernate的配置文件之后却发现:配置文件中的变量的类型自己转变成long类型的了,所以我只好将pojo类中的变量的数据类型更改为了long类型的,以后碰到这样的异常就知道是配置文件中和自己创建的pojo类的变量的数据类型不一致了!!^_^!!

以下是能完成hibernate分页的重要的代码!!

public static void main(String args[]){

        Session session = null;

        Configuration config = new Configuration().configure();

        SessionFactory factory = config.buildSessionFactory();

        session = factory.openSession();

        String hql = "FROM Person";

        Query q = session.createQuery(hql);

        q.setFirstResult(0);

        q.setMaxResults(2);

        List all = q.list();

        Iterator iter = all.iterator();

        while(iter.hasNext()){

        Person person = (Person)iter.next();     System.out.println(person.getName()+"--->"+person.getAge()+"--->"+person.getSex());

       }

}

原文地址:https://www.cnblogs.com/huapox/p/3509835.html