shop++ 中hibernate中get()与load()的区别
2015-09-06 00:00
176 查看
摘要: hibernate中get()与load()的区别 在使用shop++ 源码的时候领悟到的。
1.使用load()方法:
hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,如果数据库中不存在该条记录,此时会抛异常,load方法抛异常是指在使用该对象的数据(调用get()方法获取属性)时,当数据库中不存在该数据时,才抛出异常,而不是在创建这个对象时。由于session缓存问题,在load时会先查一下session缓存看看该id对应的对象是否存在,如果不存在则创建代理。所以如果你知道该id在数据库中一定有对应记录存在就可以使用load方法来实现延迟加载。
2.使用get()方法:
hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。
1.使用load()方法:
hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,如果数据库中不存在该条记录,此时会抛异常,load方法抛异常是指在使用该对象的数据(调用get()方法获取属性)时,当数据库中不存在该数据时,才抛出异常,而不是在创建这个对象时。由于session缓存问题,在load时会先查一下session缓存看看该id对应的对象是否存在,如果不存在则创建代理。所以如果你知道该id在数据库中一定有对应记录存在就可以使用load方法来实现延迟加载。
2.使用get()方法:
hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。
相关文章推荐
- Hibernate Oracle sequence的使用技巧
- jsp Hibernate批量更新和批量删除处理代码
- jsp hibernate的分页代码第1/3页
- JAVA+Hibernate 无限级分类
- SSH整合中 hibernate托管给Spring得到SessionFactory
- jsp hibernate 数据保存操作的原理
- hibernate中的增删改查实现代码
- 解决hibernate+mysql写入数据库乱码
- java优化hibernate性能的几点建议
- java Hibernate延迟加载
- hibernate 常用方法介绍
- 深入理解Hibernate中的flush机制
- 解析使用jdbc,hibernate处理clob/blob字段的详解
- 浅析java程序中hibernate的应用总结
- java面试常见问题之Hibernate总结
- 关于Hibernate的一些学习心得总结
- Hibernate管理Session和批量操作分析
- 基于spring+hibernate+JQuery开发之电子相册(附源码下载)
- java Hibernate 一对多自身关联问题
- SpringMVC+MyBatis项目总结(二)