4.3 session的get与load方法
从数据库中加载数据:
session.load();
session.get();
load方法与get方法的区别:
- 执行get方法会立即加载对象,而执行load方法,若不使用该对象,则不会立即执行查询操作,而是返回一个代理对象
- load是延迟检索
- get是立即检索
- 执行get方法会立即加载对象,而执行load方法,若不使用该对象,则不会立即执行查询操作,而是返回一个代理对象
- 若数据库中没有对应的记录,且SESSION也没有被关闭,同时需要使用对象时
- get返回null
- load直接抛出异常(但是如果没有使用该对象的任何属性(没有打印),没问题;若需要初始化会抛出异常)
- 若数据库中没有对应的记录,且SESSION也没有被关闭,同时需要使用对象时
- load方法可能会抛出LazyInitializationException异常 :
- 在需要初始化代理对象之前已经关闭了SESSION(在打印EMP对象之前关闭SESSION,get方法不会抛出异常(已经加载完毕),load方法会抛出异常)。
- load方法可能会抛出LazyInitializationException异常 :
当前内容版权归 chocolate213 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 chocolate213 .