路峰 2011-04-29 09:56
浏览 229
已采纳

关于Hibernate的延迟加载

 

 为什么多对一的关系在hbm.xml文件中必须把class标签的lazy属性值必须设置成false才可以,还有返回查询返回List对象结果集时必须将hbm.xml文件的hibernate-mapping的属性default-lazy值设置成false否则就会出现下面的错误啊

 

 

08:42:43,546 ERROR LazyInitializationException:19 - could not initialize proxy - the owning Session was closed
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:172)

  • 写回答

5条回答 默认 最新

  • xiaowen0713 2011-04-30 10:07
    关注

    恩,是的.那个整合了spring.如果没整合spring的话你可以自己写一个过滤器,用来决定什么时候才关闭session.

    还有,用了lazy=false会降低hibernate的数据检索效率.推荐使用fetch="join",然后在HQL语句中使用left join fetch的方式进行加载关联表的数据.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 用三极管设计一个单管共射放大电路
  • ¥20 fluent无法启动
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架