这两个函数都是用来从数据库中加载对象,其区别说起来主要有以下两点:

1.如果数据库中不存在该对象,那么load是抛出一个ObjectNotFound的异常,而get是返回一个空指针

2.加载机制不同

  当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.load()方法来加载一个对象时,此时并不会发出sql语句,当前得到的这个对象其实是一个代理对象,这个代理对象只保存了实体对象的id值,只有当我们要使用这个对象,得到其它属性时,这个时候才会发出sql语句,从数据库中去查询我们的对象。

而get则在调用时就执行Sql语句。

具体参考下文:

http://www.cnblogs.com/xiaoluo501395377/p/3371776.html

05-23 18:34