hibernate中懒加载的详细解析

  面试题3: get、load方法区别?

get: 及时加载,只要调用get方法立刻向数据库查询

load:默认使用懒加载,当用到数据的时候才向数据库查询。

 

  懒加载:(lazy)

  概念:当用到数据的时候才向数据库查询,这就是hibernate的懒加载特性。

                   目的:提供程序执行效率!

  lazy 值

         true   使用懒加载

         false   关闭懒加载

         extra   (在集合数据懒加载时候提升效率)

            在真正使用数据的时候才向数据库发送查询的sql;

            如果调用集合的size()/isEmpty()方法,只是统计,不真正查询数据!

                           

   懒加载异常

    Session关闭后,不能使用懒加载数据!

    如果session关闭后,使用懒加载数据报错:

                  org.hibernate.LazyInitializationException: could not initializeproxy - no Session

                   如何解决session关闭后不能使用懒加载数据的问题?

                            // 方式1先使用一下数据

                   //dept.getDeptName();

                  // 方式2:强迫代理对象初始化

                   Hibernate.initialize(dept);

                  // 方式3:关闭懒加载

                            设置lazy=false;

                   // 方式4在使用数据之后,再关闭session

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值