当前位置:首页 > 开发 > 编程语言 > Hibernate > 正文

Hibernate中的 get() 和load()的区别

发表于: 2009-08-11   作者:crabdave   来源:转载   浏览次数:
摘要: Hibernate中的 get() 和load()的区别   hibernate中session.get/load方法都能通过指定实体类名和id从数据库中读取指定的记录,并且返回与之对映的实体对象。但是它们也有很大的区别 (1)当记录不存在时候,get方法返回null,load方法产生异常 (2)load方法可以返回实体的代理类,get方法则返回真是的实体类 (3)load方法

Hibernate中的 get() 和load()的区别

 

hibernate中session.get/load方法都能通过指定实体类名和id从数据库中读取指定的记录,并且
返回与之对映的实体对象。但是它们也有很大的区别

(1)当记录不存在时候,get方法返回null,load方法产生异常

(2)load方法可以返回实体的代理类,get方法则返回真是的实体类

(3)load方法可以充分利用hibernate的内部缓存和二级缓存中的现有数据,而get方法仅仅在内部缓存中进行数据查找,如果没有发现数据則将越过二级缓存,直接调用SQL查询数据库。

(4)也许别人把数据库中的数据修改了,load如果在缓存中找到了数据,则不会再访问数据库,而get则会返回最新数据。

Hibernate中的 get() 和load()的区别

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
hibernate中Session接口提供的get()和load()方法都是用来获取一个实体对象,在使用方式和查询性能上
hibernate中Session接口提供的get()和load()方法都是用来获取一个实体对象,在使用方式和查询性能上
网上关于get和load的讨论很多,下面是我的一些浅显认识。 从源码角度来讲:很简单,LoadType不同。 L
Hibernate中使用session的load(...)和get(...)区别: 1、load()方法是在返回的类被后期调用时,才会
get(): @Test public void testGet() { Session session = HibernateUtils.openSession(); Transac
本段是摘自Java Persistence with Hibernate中文版的第299頁。    get()和 load()之間的一個
Load(Teacher.Class,1); Teacher.Class获取信息的类,在存储时将对象转换成String,在读取时将数据库
1.瞬时状态(Transient) 由new命令开辟内存空间的Java对象,也就是平时所熟悉的普通Java对象。 如
在Hibernate中: 如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定
今天在看孔浩的CMS视频时候看到的。 在57 -文章管理06 - 文章功能service层的实现 他在写addTopic方
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号