Hibernate - get与load方法
- 先看下load方法的执行结果
结果:
执行91行时输出Hibernate语句以及类名
get与load区别:
get:
- 不支持延迟加载,执行get方法时,就去数据库查询
- 返回的是Student类型
- 如果查询对象不存在会返回null,这样很难查询错误原因,后面很可能会报空指针异常。
load:
- 延迟加载(懒加载),只有要到了才会去数据库查询,节省开销,Hibernate建议用load
- 执行load语句返回的不是Student类型,而是Student的一个子类,他是一个代理对象,EnhancerByCGLIB
- 如果查询对象不存在会报类找不到异常,可以根据异常处理(异常不是错误,比如登录时,用户不存在或密码错误都会抛出异常。它是程序沟通的有效手段)