hibernate/jpa 取消延迟加载策

 众所周知,hibernate/jpa 为提高性能,引入延迟加载策略,如在一对多,多对多应用中,通常多的一端为延迟加载。这一定程度上可以优化系统性能,然而,在部份应用中,这种策略并吃力并不讨好,如在很多互联网应用了,由于上延迟加载,因此,数据库连接/事务 关闭的时间也将延长(通常情况,方法调用完毕,数据库连接就关闭[释放]),数据库连接/事务,通常要等到页面渲染完毕,通过Filter,将数据库连接/事务关闭[释放]。可以想像,在高并发环境下,若终端用户,网络环境不好,页面下载时间极长,那么数据库数连接不就不能尽快释放吗?那么数据库将面临连接耗尽的危险!

     如何解决?根据实际需要取消延迟加载?但是取消延迟加载,不就一下子加载很多结果集上来?在我以为,可以根据实际需要,设计相应实体,可解决这问题。

    在一对多/多对一 关系中,仅用多对一的单向关联,多对多关联,采用单向关联或者用中间类原则,改为双向的多对一关联,加载策略都为立即加载。那么延迟加载引发的问题可以一定程度上解决。

 

   当然延迟加载,也有他一定的适用环境,在企业内部系统中,一般来说,网络环境较好情况下,Hibernate/jpa 延迟加载的策略也有它的适用场境,任何工具都有它的局限性,适用之,工具将为你而服务!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值