美文网首页
Hibernate的get()和load()方法

Hibernate的get()和load()方法

作者: 逸舒紫忆 | 来源:发表于2017-04-26 19:34 被阅读0次

    Hibernate的get和load方法区别

    1、get方式会马上发出查询语句,load不会,而是先返回一个代理(继承当前实体类,可理解为空壳),当你真正需要使用它的时候才会去查询,返回相应字段信息

    2、load支持lazy(延迟加载、懒加载)

    什么叫lazy?

    只有真正使用这个对象的时候,在创建,对于hibernate来说,才真正的发出查询语句,主要是为了提高性能

    hibernate的lazy是如何实现的?

    采用代理对象实现,代理对象主要采用的是CGLIB库生成的,而不是JDK的动态代理,因为JDK的动态代理只能对实现了接口的类生成代理,CGLIB可以对类生成代理,采用的是继承方式

    3、get查询不存在的对象返回null,load查询不存在的数据,hibernate会抛出ObjectNotFoundException异常

    hibernate的删除方式

    1、先加载(get/load),再删除-----建议此法

    2、手动构造detached状态的对象,再删除

    都是根据ID来删

    相关文章

      网友评论

          本文标题:Hibernate的get()和load()方法

          本文链接:https://www.haomeiwen.com/subject/yodwzttx.html