Session的load和get方法区别是什么?
2024-10-07 16:16:53
①如果没有找到符合条件的记录,get方法返回null值,而load方法会抛出异常;
②get方法直接返回实体类对象,load方法返回实体类对象的代理;
③在Hibernate3之前,get方法只在一级缓存(内部缓存)中进行数据查找,如果没有找到对应的数据则越过二级缓存,直接发出SQL语句完成数据的读取;load方法则可以充分利用二级缓存中现有数据,进行延迟加载。当然从Hibernate3开始,get方法不再是对二级缓存只写不读,它也是可以访问二级缓存的;
简单的是,对于load()方法,hibernate认为该数据在数据库中一定存在,可以放心的使用代理来实现延迟加载,如果没有数据,就会抛出异常,而通过get()方法去取数据,是可以不存在的。
最新文章
- 事务日志已满,原因为“ACTIVE_TRANSACTION”
- [转]程序员趣味读物:谈谈Unicode编码
- STM8s在利用库配置端口的小问题
- IE9 表格错位bug
- HDU1700:Points on Cycle
- 数据类型 text 和 varchar 在 add 运算符中不兼容
- 常用PHP函数的封装
- BZOJ 3963: [WF2011]MachineWorks [CDQ分治 斜率优化DP]
- CentOS-7修改主机名
- javascript 字符串的连接和截取
- Node.js Error: listen EADDRNOTAVAIL
- C#实现将字符串作为表达式运算
- JAVA框架 Spring 引入多个配置文件
- redux、immutablejs和mobx性能对比(一)
- 构建Vue开发环境
- 公式中表达单个双引号【";】和空值【";";】的方法及说明
- node使用JsonWebToken 生成token,完成用户登录、登录检测
- vs git 推送远程会失败.
- pt-table-checksum校验mysql主从数据一致性
- Maven - 依赖冲突