这两个函数都是用来从数据库中加载对象,其区别说起来主要有以下两点:
1.如果数据库中不存在该对象,那么load是抛出一个ObjectNotFound的异常,而get是返回一个空指针
2.加载机制不同
当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.load()方法来加载一个对象时,此时并不会发出sql语句,当前得到的这个对象其实是一个代理对象,这个代理对象只保存了实体对象的id值,只有当我们要使用这个对象,得到其它属性时,这个时候才会发出sql语句,从数据库中去查询我们的对象。
而get则在调用时就执行Sql语句。
具体参考下文:
http://www.cnblogs.com/xiaoluo501395377/p/3371776.html