hibernate如何实现延迟加载

来源:互联网 发布:淘宝客建站平台 编辑:程序博客网 时间:2024/06/11 20:24
(1)首先介绍一下延迟加载的几种情况:
       当调用Session上的load()方法加载实体时,就会采用延迟加载
       当Session加载某个实体时,会对这个实体中的集合属性值采用延迟加载
       当Session加载某个实体时,会对这个实体所单端关联(one-to-one,many-to-one)的另一个实体对象采用延迟加载
       总结一句话延迟加载就是分为类的延迟加载和集合的延迟加载,即类的延迟加载包括用load()方法加载实体和加载实体所单向关联的另一个实体的对象
(2)延迟加载的过程
       Hibernate从数据库获取某一个对象数据、获取某一个对象的集合属性时,获取某一个对象所关联的另一个对象时,       由于没有使用该对象的数据,hibernate并不从数据库加载真正的数据。而是为该对象创建一个代理对象来代表这个对象,       这个对象上的所有属性都为默认值,只有在真正的需要该对象的数据时才创建这个真实的对象,真正的从数据库中加载数据。
       注:如果访问的是对象标识符属性,没有必要初始化代理
(3)延迟加载的使用
       因为在类加载和集合加载的时候都会遇到懒加载的问题,当我们在查询的时候不需要懒加载,因为通过懒加载不能查到是情况下,       可以在class类标签或者是set集合的标签中设置lazy=false,表示立即加载,而true表示懒加载ps:有关hibernate的延迟加载,更多的可以参考 http://bbs.itheima.com/thread-8863-1-1.html

原创粉丝点击