呵呵,
是load(),和get()的机制不同,有空看看hibernate的文档,里面说的很清楚
执行load()时,先从Session查找当前的对象是否存在,如果不存在,则从数据库中去查询,如果不存在这条记录,则扔异常执行get()的时候,不论Session中是否存在当前对象,直接从数据库中去查询,如果不存在,则返回null

解决方案 »

  1.   

    问题是我用get是能查出来的,没有问题的啊
      

  2.   

    我开始说的不对:(
    执行load()时,如果找不到记录,异常应为ObjectNotFoundException
     这句:
    //session.load(Man.class,"oo");
    “oo”是你表的主键吗?
      

  3.   

    当然是啊,请注意:【把load改成get,其它不动】,是正确执行的。
      

  4.   

    如果load不到数据也不是空指针异常啊http://www.javayou.com
      

  5.   

    这个字符串主键只是测试啦,其实hibernate是主张32位字符串主键的,但是从安全角度出发,我还是喜欢数字主键的,就是因为数字主键不行,才做了这个例子测试,结果还是不行,我下载了最新的hibernate3.jar,结果连get都抛异常了:(
      

  6.   

    请问楼上贤兄,你们的session.load()能用是么?你们用的hibernate是什么版本,能否给兄弟一份,兄弟试试?最好是连测试代码打包哦,嘻嘻,兄弟接到了请你们米西哦!!!
    多谢啦!!兄弟的邮箱是[email protected]
      

  7.   

    或者来群里讨论一下:28010790,JAVA全国讨论区
      

  8.   

    记录肯定是有的,get是能取出的,只是把get换成load就抛空指针了
      

  9.   

    使用hibernate,cglib包是必须要的,否则无法创建代理,上面的异常也是在at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)时抛出的。其他包在你使用使用相应的功能时也会需要。
      

  10.   

    请问楼上,这些包在什么地方呢,不在hibernate3下载下来后,除了hibernate3.jar,就是lib下面的包了,我去哪里找这些需要的包呢,
      

  11.   

    就是它的lib目录,你要省事的话就把lib下的文件全部拷到自己项目的lib下
      

  12.   

    你load的时候先从缓存去获取,而get是直接读数据库,报错是因为缓存和数据库没有同步,就是数据不一致
      

  13.   

    v38(国产磁悬浮拖拉机:不上CSDN有多年) ( ) 信誉:100    Blog  2007-2-1 17:17:21  得分: 0  
     
     
       
    呵呵,
    是load(),和get()的机制不同,有空看看hibernate的文档,里面说的很清楚
    执行load()时,先从Session查找当前的对象是否存在,如果不存在,则从数据库中去查询,如果不存在这条记录,则扔异常执行get()的时候,不论Session中是否存在当前对象,直接从数据库中去查询,如果不存在,则返回null-------------------
    load 跟 get 的不同
      

  14.   

    lujh99(闲云) ,问题解决,请问如何给你分数?
      

  15.   

    load 跟 get 的不同
    load 得到了..还可以update
    而get 就不可以了.
      

  16.   

    你调用的参数不对吧,load方法有2种,一种传入Class,一种是Object应该如下:
    Session session=HibernateTool.getSession();
     Man man = (Man)session.load(Man.class,"oo");
     session.close();
    或者:
    Man man=new Man();
    Session session=HibernateTool.getSession();
     session.load(man,"oo");
     session.close();
      

  17.   

    我也遇到这种情况,应该是cglib.jar包的问题,我用的是hibernate3.1,以前用3.0没有什么异常的,不知道是不是版本问题
      

  18.   

    你在javabean里少了一个空参的构造器。