get()和load()的区别
1、get()方法直接返回实体类,如果查不到数据则返回null;
load()会返回一个实体代理对象,当代理对象被调用时,如果不存在,会抛出 org.hibernate.ObjectNotFoundException;
2、查询顺序:一级缓存(session缓存)->二级缓存->数据库
如果缓存中没有记录,则从数据库查到的记录会自动缓存到缓存中
缓存中查不到记录,get()直接向数据库发送sql语句,而load()使用懒加载
load()懒加载:返回一个代理对象(不马上到DB中去找),等后面使用这个代理对象的时候,才到DB中查询
注:如果不希望使用懒加载,可以在*.hbm.xml文件中配置lazy属性 <class name="Employee" lazy="false" table="employee">
posted on
浙公网安备 33010602011771号