您的位置:首页 > 其它

Hibernate中的get与load有什么区别?

2014-02-25 23:21 218 查看
学校学习版:

1、get是立即加载,load是延迟加载;

2、查询不到数据的时候,get返回null,load抛异常;

3、get默认立即加载(返回非代理对象),load默认是延迟加载(返回代理对象);

4、在hibernate实体映射文件中可修改lazy属性的值来改变load方法的加载方式(lazy=“false”关闭延迟),对get无效;

5、代理对象:只有oid(对象标示符)属性有值,第一次访问非oid属性时会访问数据库加载其他属性,如果此时session已关闭,则会报错。

大神版本:

1、找不到符合条件的数据,get()方法将返回null。load()将会报出ObjectNotFoundEcception。

2、get()方法直接返回实体类。load()方法可以返回实体的代理类实例。

3、get()方法只在内部缓存中进行查找。load()方法可以利用二级缓存和内部缓存的现有数据。

4、get方式马上发出sql。load在默认情况下支持延迟加载(lazy)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: