zoukankan      html  css  js  c++  java
  • hibernate中load( )方法和get( )方法的区别

    根本区别:hibernate中对于load()方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而get()方法,hibernate一定要获取到真实的数据,否则返回null;
    ①get()方法:会先确认id对应的数据是否存在,如果不存在,就返回null;
    ②load()方法:会先认定id对应的数据一定存在,会先在session的一级缓存中去查找,如果没有找到,会根据lazy属性值来确认是否使用延迟加载,如果lazy=‘true’,就是使用延迟加载,返回该代理对象,等到真正访问到该对象的属性时才去二级缓存中查询,如果没有,再取数据库中查询,如果还没有的话,就抛出org.hibernate.ObjectNotFoundException异常。如果lazy='false' 则不使用延迟加载,这是load的访问机制就和get一样了;

  • 相关阅读:
    资源限制
    垃圾收集器
    GC日志
    happens-before
    maven相互依赖导致无法编译成功
    LVM-逻辑卷常用命令和示意图
    取消RAID5
    扩展RAID5的容量
    模拟RAID5损坏
    创建RAID5
  • 原文地址:https://www.cnblogs.com/xie-qi/p/12873241.html
Copyright © 2011-2022 走看看