Hibernate的get和load有什么区别

一.  load加载方式

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

二.Get加载方式

通过get方法来加载对象时,不管使不使用该对象,都会发出sql语句,从数据库中查询

报错不同

当通过get方式试图得到一个id不存在的user对象时,此时会报NullPointException异常
当通过load方式试图得到一个id不存在的user对象时,此时会报ObjectNotFoundException异常
posted @ 2017-08-10 16:42  IT改变世界  阅读(127)  评论(0编辑  收藏  举报