`
perfect5085
  • 浏览: 271585 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hibernate3.2.6 Session加载数据时get和load方法的区别

 
阅读更多

查找顺序:
    get和load方法的查找顺序完全相同,不管类的属性配置中:lazy="true"或者lazy="false"

  1.     首先在session缓存中查找:loadFromSessionCache()
  2.     然后在二级缓存SessionFactory中查找:loadFromSecondLevelCache()
  3.     最后从数据库查找:loadFromDatasource()

返回结果:


  •     相同 :get和load方法如果在一级和二级缓存中找到持久化对象,直接返回该持久化对象,不会对该对象进行任何包装。(返回的对象:可能是原生的对象,也可能是代理的对象,取决于缓存中对象本身是什么对象)

 


  •     不同 :如果在一级和二级缓存中找不到相应的对象: get查询数据库,找到:返回原生的持久化对象,找不到:返回null.

       

  • load查询数据库: 如果lazy="true", 或者没有配置lazy属性(默认为true) 且 未指定锁(默认LockMode.NONE)    找到:   返回代理的持久化对象       找不到:返回代理的空数据对象,不能对该对象进行获取数据的操作,否则抛出 ObjectNotFoundException
  • 如果lazy="false"或者 指定锁(LockMode.READ ...)        找到:返回原生的持久化对象        找不到:抛出 ObjectNotFoundException

 

 

0
0
分享到:
评论

相关推荐

    Hibernate3.2.6

    1. 改进的性能:3.2.6版本在查询优化、缓存策略和事务处理上都有所提升,确保了在大规模数据操作时的高效性。 2. 支持JPA:Java Persistence API(JPA)是Java EE平台中的ORM规范,Hibernate 3.2.6完全兼容JPA,...

    Hibernate3.2.6源代码以及英文api

    10. **事件和监听器**:Hibernate允许注册监听器来响应特定的事件,如对象的加载、保存、更新和删除,这在实现业务逻辑或扩展功能时非常实用。 11. **多态性支持**:Hibernate支持多态查询,可以在父类上定义查询,...

    Hibernate3.2.6 API文档.chm

    Hibernate3.2.6 API文档.chm

    hibernate-3.2.6下载

    在文件名称列表中,"hibernate-3.2"可能是压缩包的一部分,可能包含多个与Hibernate 3.2.6相关的文件和子目录,如lib目录下的各种jar文件,包括Hibernate的核心库、JDBC驱动、JTA实现等;还可能有文档、示例代码或者...

    Hibernate 3.2.6API 帮助文档

    Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

    Hibernate 3.2.6 API

    Hibernate 3.2.6 API

    hibernate-3.2.6 核心jar包

    6. **Caching**:Hibernate支持缓存机制,提高数据访问性能,包括一级缓存(Session级别)和二级缓存(SessionFactory级别)。 7. **Type系统**:定义了Java类型和数据库类型之间的转换规则。 8. **事件和监听器**...

    Hibernate3.2.6ga 支持Session修改Schema

    修改Hibernate3.2.6ga可以动态通过Session设置Schema Session session=sf.openSession(); session.setSchema("SchemaName"); session.save........ ....... .......

    hibernate-3.2.6

    8. **懒加载(Lazy Loading)**:Hibernate支持延迟加载,即当需要时才加载关联的对象,有效防止内存溢出并提高性能。 9. **集合映射**:包括List、Set、Map等多种Java集合类型与数据库表的关联映射,支持一对一、...

    真正的Hibernate3.2.6英文API

    现在最新的Hibernate是3.3.2,但是整个API没有重大变动,想成为专家级开发人员,就不能停留在入门的教程上,必须研究Hibernate各个核心接口的API 很不容易找到真正的API,网上有太多的入门教程,共享之。

    Hibernate 3.2.6源代码包

    Hibernate 3.2.6的源代码包,有需要的可以下载了,压缩包使用7z压缩,可以使用WINRAR打开解压,解压缩后大约82兆,在MyEclipse 6.5中手动配置HIBERNATE和查看源码测试成功

    hibernate 3.2.6架包(包括所有jar,eg,api)

    4. 缓存机制:Hibernate 3.2.6提供了缓存支持,包括一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存)。这可以提高应用程序性能,减少对数据库的直接访问。此外,还支持第三方缓存解决方案,如...

    hibernate 3.2.6-2

    第二个:hibernate 3.2.6-2

    hibernate-3.2.6完整jar包+src

    在给定的压缩包“hibernate-3.2.6完整jar包+src”中,包含了Hibernate 3.2.6版本的全部库文件以及源代码,这对于我们深入理解和学习Hibernate的工作原理极其有价值。 首先,`lib`目录下的jar包是Hibernate 3.2.6的...

    Hibernate-3.2.6.ga.zip上

    6. **CGLIB 和 Javassist**: Hibernate 3.2.6.ga 集成了CGLIB和Javassist库,用于动态代理和字节码操作,优化了懒加载和延迟加载功能。 ### 使用 Hibernate-3.2.6.ga 开发 在使用Hibernate 3.2.6.ga 开发时,你...

    spring2.5.4+hibernate3.2.6+struts2+jbpm3.2.2配置方法

    虽然在给出的内容中没有直接涉及Hibernate的配置,但在实际应用中,通常会有一个Hibernate的配置文件(如`hibernate.cfg.xml`),用于定义数据源、实体映射和事务管理等。 3. **Struts2框架**: - Struts2作为MVC...

    hibernate-3.2.6.ga.zip

    3. **org.hibernate.boot.***:启动和初始化Hibernate,包括MetadataSources、SessionFactoryBuilder等,是较新版本中负责元数据加载的部分。 4. **org.hibernate.type.***:包含各种类型转换器,用于处理Java对象...

    hibernate-3.2.6.ga

    hibernate-3.2.6.ga.part02.rar

    Hibernate-3.2.6.ga.zip下

    6. **延迟加载(Lazy Loading)**:Hibernate 实现了关联对象的延迟加载,只在真正需要时才从数据库中加载关联数据。 ### Hibernate 3.2.6.ga 更新 - **性能优化**:此版本针对查询性能进行了优化,减少了数据库...

    Hibernate3.2.6英文api.chm

    Hibernate3.2.6英文api.chm,喜欢英文文档的可以下载。网上找了半天也没看住满意的,自己干脆做了一个chm格式的,用着还可以。学习,开发都很有帮助。

Global site tag (gtag.js) - Google Analytics