虽然说数据库是以表存储数据,查询都是基于这个的,实际上在开发中,我们应用程序都是调用的
视图,而hibernate却是表和对象的映射,那么这里是不是有冲突了,因为视图过滤掉一些我们不需要的数据!
就算你在hibernate映射了一对多的关系,检索一个对象时,它会包含其对应的对象的数据,但是它包含了所有对象的数据,也许有些在查询中是根本没用到的!我的理解是这样的,不知道大家明白我的意思没有!
都怎么做的??另外,持久化类的配置文件的class有个属性lazy,当它为false的时候,load方法一个类也就是用的
立即检索,而find和get方法就是采用的立即检索,没太搞懂三个方法的区别和实用场合,请老鸟指教!!

解决方案 »

  1.   

    关于class的lazy属性在2.1中默认的是false,但在3.0中是true了。因为load是用的立即检索,如果你的lazy不等于false就会出现异常。
      

  2.   

    可以合理的使用延迟解决。hibernate2中class的lazy只对load方法起作用,也就是说当设置class的lazy为true时,load方法采用延迟,而find和get采用立即检索
      

  3.   

    我很需要第1个问题的答案~~~~~~~~另外hibernate的分页机制好么?能代替存储过程中的分页?
      

  4.   

    从楼主的话语中似乎很喜欢在数据库上作文章。在我理解的范围内,j2ee开发尽量避免在数据库上做文章,也就是什么存储过程,什么视图尽量少用,这也是考虑到应用的跨平台。另外,hibernate已经有了分页,为什么还要自己写存储过程呢。这不是简单事情复杂化。