2:Hibernate缓存分类
Hibernate缓存我们通常分两类,一类称为一级缓存也叫内部缓存,另一类称为二级缓存。Hibernate的这两级缓存都位于持久化层,存放的都是数据库数据的拷贝,那么它们之间的区别是什么呢?为了理解二者的区别,需要深入理解持久化层的缓存的一个特性:缓存的范围。
缓存的范围决定了缓存的生命周期以及可以被谁访问。缓存的范围分为三类。
(1) 事务范围:缓存只能被当前事务访问。缓存的生命周期依赖于事务的生命周期,当事务结束时,缓存也就结束生命周期。在此范围下,缓存的介质是内存。事务可以是数据库事务或者应用事务,每个事务都有独自的缓存,缓存内的数据通常采用相互关联的的对象形式, 一级缓存就属于事务范围。
(2) 应用范围:缓存被应用范围内的所有事务共享。这些事务有可能是并发访问缓存,因此必须对缓存采取必要的事务隔离机制。缓存的生命周期依赖于应用的生命周期,应用结束时,缓存也就结束了生命周期,二级缓存存在于应用范围。
(3) 集群范围:在集群环境中,缓存被一个机器或者多个机器的进程共享。缓存中的数据被复制到集群环境中的每个进程节点,进程间通过远程通信来保证缓存中的数据的一致性,缓存中的数据通常采用对象的松散数据形式,二级缓存也存在与应用范围。
注意:对大多数应用来说,应该慎重地考虑是否需要使用集群范围的缓存,因为访问它的速度不一定会比直接访问数据库数据的速度快多少,再加上集群范围还有数据同步的问题,所以应当慎用。
持久化层可以提供多种范围的缓存。如果在事务范围的缓存中没有查到相应的数据,还可以到应用范围或集群范围的缓存内查询,如果还是没有查到,那么只有到数据库中查询了。
分享到:
相关推荐
讨论了缓存机制(一级缓存和二级缓存)、批处理、延迟加载和实体状态管理等性能优化策略。 ### 8. 对比其他ORM框架 对比 Hibernate 与其他 ORM 框架,如 MyBatis、EclipseLink 和 JDO,在易用性、灵活性、性能和...
2. **对象关系映射(ORM)**:详细讲解Hibernate如何实现对象与数据库表之间的映射,包括使用XML配置文件和注解的方式,以及属性类型和字段的对应规则。 3. **Session和Transaction**:解释Session作为数据访问接口...
8. **第二级缓存和查询缓存**:讨论Hibernate的缓存机制,如何使用第二级缓存提高性能,以及查询缓存如何减少数据库查询次数。 9. **性能优化**:提供一系列优化策略,如延迟加载、批处理、连接池配置等,帮助...
文件`hibernate_fetch_1`与`hibernate_query_cache`涉及到的是Hibernate的数据检索和查询缓存。Hibernate提供了多种加载策略,包括立即加载(Eager Fetching)和延迟加载(Lazy Loading)。立即加载会一次性获取...
在Java的持久化框架中,Hibernate是一个非常重要的角色,它提供了强大的对象关系映射(ORM)功能,使得开发者能够方便地在Java应用中操作...深入研究Hibernate的文档和实践案例,将有助于进一步提高我们的开发技能。
### Hibernate 3.2.2 参考文档精要解析 #### 引言与初次接触Hibernate Hibernate作为一款流行的Java...通过深入研究这份文档,开发者可以更加熟练地掌握Hibernate的使用技巧,从而在项目中发挥出更高的效率和质量。
本文将围绕Spring如何管理和驱动Hibernate4进行详细的讨论。 首先,Spring作为一个灵活的IoC(Inversion of Control)容器,它不仅管理着应用对象的生命周期,还负责整合各种ORM框架,包括Hibernate。Spring的ORM...
2. **配置文件(hibernate.cfg.xml)**:这是 Hibernate 应用程序的基础配置文件,包含了数据库连接信息、方言设置、缓存配置等重要参数。 3. **实体类(Entity)**:实体类是与数据库表相对应的Java类,通过注解...
2. **Hibernate**:Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,通过将Java类与数据库表映射,使得开发者可以使用面向对象的方式来处理数据库事务。 Hibernate支持CRUD(创建、读取、...
4. **案例研究**:通过实际项目案例,展示Hibernate在不同场景下的应用。 这些电子书全集将帮助开发者从多个角度全面掌握Hibernate,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过深入阅读和实践,...
8. **性能优化**:学习如何通过缓存机制(一级缓存和二级缓存)、批处理和延迟加载等技术提升Hibernate的性能。 **标签:“源码”和“工具”** 这表明文章可能包含了示例代码,并且可能会讨论如何将这些知识应用于...
我们可以深入讨论Hibernate的相关概念、功能、优点以及如何与SQL Server 2008集成。 **文件名分析:** 文件名为“SSHDemo.rar”和“新建文件夹.rar”。"SSHDemo"可能是一个SSH(Spring、Struts、Hibernate)架构的...
### 基于Hibernate的效率查询的研究和应用 #### 摘要 本文详细探讨了当前流行的Hibernate映射框架,并结合某通信企业的电子运行维护系统(E2OMS)的实际开发过程,提出了一个基于Hibernate的数据持久层解决方案。该...
2. 安装与配置:讲解如何在项目中引入Hibernate框架,包括下载Hibernate库、配置Hibernate的XML文件(如hibernate.cfg.xml)以及数据库连接参数。 3. 实体类与数据表映射:介绍Hibernate的核心元素——实体类...
6. **缓存机制**:介绍Hibernate的一级缓存和二级缓存,以及如何配置和优化缓存以提高应用程序性能。 7. **性能优化**:讨论最佳实践,如延迟加载、批处理更新、连接池的使用,以及如何通过分析和调整来优化数据库...
描述中提到,这个实例使用了MySQL数据库,这意味着我们将讨论如何配置Hibernate以与MySQL配合工作,并执行CRUD(创建、读取、更新和删除)操作。同时,源代码有详细的注释,这意味着初学者可以通过阅读代码和注释来...
标题“Lucene Hibernate”揭示了我们讨论的核心主题:如何将Apache Lucene这个强大的全文搜索引擎与Hibernate这款流行的Java对象关系映射(ORM)框架相结合。在这个例子中,我们将深入探讨这两个技术的集成,以及...
7. **缓存机制**:解释了Hibernate缓存的实现原理及配置方法,帮助提高应用程序性能。 8. **性能调优**:提供了关于如何优化Hibernate应用性能的一系列建议,包括查询优化、连接池配置等。 9. **集成测试**:介绍了...
- **缓存机制**:分析了Hibernate的一级缓存和二级缓存的工作原理及配置方法,以及如何优化查询性能。 #### 高级特性 - **关联映射**:深入探讨了一对一、一对多、多对多等各种关联关系的映射方法。 - **继承映射*...
2. **安装与配置**:学习如何在项目中集成Hibernate,包括下载、添加依赖、配置hibernate.cfg.xml文件以及创建SessionFactory。 3. **对象关系映射(ORM)基础**:理解实体类、属性注解、主键生成策略,以及如何...