hibernate的get/load的根本区别分为4点:
第一点是:load会抛出异常,get会返回空,一般采用的load方法。
第二点是:get只返回实体对象实例。而load返回的是代理类实体对象实例。
第三点是:get方法只能使用一级缓存。而load可以使用一级和二级缓存。
第四点是:都是通过id得到单个对象的方法

 

 * 与get()的区别:
         * 1:在立即加载对象(当hibernate在从数据库中取得数据组装好一个对象后
         * 会立即再从数据库取得数据此对象所关联的对象)时,如果对象存在,
         * load()和get()方法没有区别,都可以取得已初始化的对象;但如果当对
         * 象不存在且是立即加载时,使用get()方法则返回null,而使用load()则
         * 抛出一个异常。因此使用load()方法时,要确认查询的主键ID一定是存在
         * 的,从这一点讲它没有get方便!
         * 2:在延迟加载对象(Hibernate从数据库中取得数据组装好一个对象后,
         * 不会立即再从数据库取得数据组装此对象所关联的对象,而是等到需要时,
         * 都会从数据库取得数据组装此对象关联的对象)时,get()方法仍然使用
         * 立即加载的方式发送SQL语句,并得到已初始化的对象,而load()方法则
         * 根本不发送SQL语句,它返回一个代理对象,直到这个对象被访问时才被
         * 初始化。

posted on 2013-03-28 11:10  你猜呢  阅读(139)  评论(0编辑  收藏  举报