SSH1项目中Hibernate的load和Get方法都不能取出实体了,崩溃啦!!!Dao层是用spring注入的HibernateTemplate,调用
BBSSort bbsSort= (BBSSort)getHibernateTemplate().load(BBSSort.class, id);
的时候可以取出来bbsSort,但是里面的内容都是null或0(就跟new出来的一样,里面没有数据!)但是用
this.getHibernateTemplate().delete(this.getHibernateTemplate().load(BBSSort.class, id));
却可以正常删除数据。--------------------------------------------
传递进去的id是有值的,deBug的时候可以看到HibernateTemplate也注入进来了。
查找的时候如果用find也可以找到,但是这个得到的只是一个List,还得用get(0)取出实体,比较麻烦,关键是为啥我的load和 get失效了!!求助啊!

解决方案 »

  1.   

    这就是Hibernate懒加载了,不过get方法应该不会出现懒加载的啊~~~
    不过楼主放心,用的时候相应的数据就出来了
      

  2.   

    load 本来就拿不到实体吧。只是拿到一个"标签"。没有实质内容。
      

  3.   

    看看是不是有lazy=true之类的配置  有的话去掉吧 
      

  4.   

    BBSSort bbsSort= (BBSSort)getHibernateTemplate().load(BBSSort.class, id); 
    bbsSort断点这里,发现bbsSort仅存在id的值
    这个是支持延迟加载,即在使用bbsSort的时候才从session获取。
    System.out.println(bbsSort.getName);
    bbsSort断点这里,发现bbsSort存在所有属性值。BBSSort bbsSort= (BBSSort)getHibernateTemplate().get(BBSSort.class, id); 
    不支持延迟加载,即直接从数据库中查询,并load结果,
    bbsSort断点这里,发现bbsSort存在所有属性值。