查找顺序:
get和load方法的查找顺序完全相同,不管类的属性配置中:lazy="true"或者lazy="false"
-
首先在session缓存中查找:loadFromSessionCache()
-
然后在二级缓存SessionFactory中查找:loadFromSecondLevelCache()
-
最后从数据库查找:loadFromDatasource()
返回结果:
-
相同
:get和load方法如果在一级和二级缓存中找到持久化对象,直接返回该持久化对象,不会对该对象进行任何包装。(返回的对象:可能是原生的对象,也可能是代理的对象,取决于缓存中对象本身是什么对象)
-
不同
:如果在一级和二级缓存中找不到相应的对象:
get查询数据库,找到:返回原生的持久化对象,找不到:返回null.
-
load查询数据库:
如果lazy="true", 或者没有配置lazy属性(默认为true) 且
未指定锁(默认LockMode.NONE)
找到: 返回代理的持久化对象 找不到:返回代理的空数据对象,不能对该对象进行获取数据的操作,否则抛出 ObjectNotFoundException
-
如果lazy="false"或者
指定锁(LockMode.READ ...) 找到:返回原生的持久化对象 找不到:抛出 ObjectNotFoundException
分享到:
相关推荐
1. 改进的性能:3.2.6版本在查询优化、缓存策略和事务处理上都有所提升,确保了在大规模数据操作时的高效性。 2. 支持JPA:Java Persistence API(JPA)是Java EE平台中的ORM规范,Hibernate 3.2.6完全兼容JPA,...
10. **事件和监听器**:Hibernate允许注册监听器来响应特定的事件,如对象的加载、保存、更新和删除,这在实现业务逻辑或扩展功能时非常实用。 11. **多态性支持**:Hibernate支持多态查询,可以在父类上定义查询,...
Hibernate3.2.6 API文档.chm
在文件名称列表中,"hibernate-3.2"可能是压缩包的一部分,可能包含多个与Hibernate 3.2.6相关的文件和子目录,如lib目录下的各种jar文件,包括Hibernate的核心库、JDBC驱动、JTA实现等;还可能有文档、示例代码或者...
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate 3.2.6 API
6. **Caching**:Hibernate支持缓存机制,提高数据访问性能,包括一级缓存(Session级别)和二级缓存(SessionFactory级别)。 7. **Type系统**:定义了Java类型和数据库类型之间的转换规则。 8. **事件和监听器**...
修改Hibernate3.2.6ga可以动态通过Session设置Schema Session session=sf.openSession(); session.setSchema("SchemaName"); session.save........ ....... .......
8. **懒加载(Lazy Loading)**:Hibernate支持延迟加载,即当需要时才加载关联的对象,有效防止内存溢出并提高性能。 9. **集合映射**:包括List、Set、Map等多种Java集合类型与数据库表的关联映射,支持一对一、...
现在最新的Hibernate是3.3.2,但是整个API没有重大变动,想成为专家级开发人员,就不能停留在入门的教程上,必须研究Hibernate各个核心接口的API 很不容易找到真正的API,网上有太多的入门教程,共享之。
Hibernate 3.2.6的源代码包,有需要的可以下载了,压缩包使用7z压缩,可以使用WINRAR打开解压,解压缩后大约82兆,在MyEclipse 6.5中手动配置HIBERNATE和查看源码测试成功
4. 缓存机制:Hibernate 3.2.6提供了缓存支持,包括一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存)。这可以提高应用程序性能,减少对数据库的直接访问。此外,还支持第三方缓存解决方案,如...
第二个:hibernate 3.2.6-2
在给定的压缩包“hibernate-3.2.6完整jar包+src”中,包含了Hibernate 3.2.6版本的全部库文件以及源代码,这对于我们深入理解和学习Hibernate的工作原理极其有价值。 首先,`lib`目录下的jar包是Hibernate 3.2.6的...
6. **CGLIB 和 Javassist**: Hibernate 3.2.6.ga 集成了CGLIB和Javassist库,用于动态代理和字节码操作,优化了懒加载和延迟加载功能。 ### 使用 Hibernate-3.2.6.ga 开发 在使用Hibernate 3.2.6.ga 开发时,你...
虽然在给出的内容中没有直接涉及Hibernate的配置,但在实际应用中,通常会有一个Hibernate的配置文件(如`hibernate.cfg.xml`),用于定义数据源、实体映射和事务管理等。 3. **Struts2框架**: - Struts2作为MVC...
3. **org.hibernate.boot.***:启动和初始化Hibernate,包括MetadataSources、SessionFactoryBuilder等,是较新版本中负责元数据加载的部分。 4. **org.hibernate.type.***:包含各种类型转换器,用于处理Java对象...
hibernate-3.2.6.ga.part02.rar
6. **延迟加载(Lazy Loading)**:Hibernate 实现了关联对象的延迟加载,只在真正需要时才从数据库中加载关联数据。 ### Hibernate 3.2.6.ga 更新 - **性能优化**:此版本针对查询性能进行了优化,减少了数据库...
Hibernate3.2.6英文api.chm,喜欢英文文档的可以下载。网上找了半天也没看住满意的,自己干脆做了一个chm格式的,用着还可以。学习,开发都很有帮助。