在Hibernate3中,根据主键查询有两种方式,一般情况下,他们两效果是一样的,都能查询到我们想要的结果。而实际上,二者却有很多不同之处。
*1.发送SQL的时机:
- load这个方法采用了一个技术.lazy延迟加载(懒加载).真正使用这个对象的数据的时候.(对象的数据不包括主键).
- get这个方法是立即检索.当执行session.get()方法的时候,马上发送SQL语句查询.
2.返回的对象:
- load方法返回的是代理对象.
- get方法返回的是真实的对象.
3.查询一个不存在的数据:
- load方法抛异常:ObjectNotFoundException.
- get方法抛异常:NullPointException.