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一样了;

  • 相关阅读:
    【PKUWC2018】Minimax
    Codeforces Round #673
    【BZOJ1901】Dynamic Rankings
    【笔记】树状数组
    【CF1420E】Battle Lemmings
    Codeforces Round #672
    Problem A: STL——灵活的线性表
    algorithm
    iterator
    TRY vector
  • 原文地址:https://www.cnblogs.com/xie-qi/p/12873241.html
Copyright © 2011-2022 走看看