1 list和iterate不同之处(//主要为了面试 详见hibernate_2900_Hibernate_list_iterate)
a) list取所有
b) iterate先取 ID,等用到的时候再根据ID来取对象
c) session中list第二次发出,仍会到数据库査询
d) iterate 第二次,首先找session 级缓存
2 一级缓存和二级缓存和査询缓存(面试题)(详见hibernate_3000_Hibernate_3KindsOf_Cache)
a) 什么是缓存
b) 什么是一级缓存,session级别的缓存
c) I什么是二级缓存,SessionFactory级别的缓存,可以跨越session存在
i. 经常被访间
ii. 改动不大不会经常改动
iii. 数重有限
d) 打开二级缓存
i. hibernate.cfg.xml 设定:
<property
name= "cache.use_second_level_cache">true</property>
<property
name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
ii. @Cache注解(由hibernate扩展提供)
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
注:使用EhCache二级缓存 需要导入ehcache-1.2.3.jar及commons-logging-1.0.4.jar包
e) load默认使用二级缓存,iterate默认使用二级缓存
f) list默认往二级缓存加数据,但是查询的时候不使用
g) 如果要query用二级缓存,需打开查询缓存
<property name="cache.use_query_cache">true</property>
调用Query的setCachable (true)方法指明使用二级缓存
例如:session.createQuery("from Category").setCacheable(true).list();
h) 缓存算法:(纯为了面试)
i. LRU LFU FIFO
1. Least Recently Used –最近很少被使用
2. Least Frequently Used (命中率高低)
3. First In First Out 按顺序替换
ii. memoryStoreEvictionPolicy = "LRU" (ehcache.xml中配置)
分享到:
相关推荐
在学习Hibernate的过程中,二级缓存是一个非常重要的概念。与一级缓存不同的是,一级缓存默认为每个`Session`开启,用于存储当前`Session`内的实体状态。而二级缓存则是在`SessionFactory`级别提供的缓存机制,它...
描述中提到的链接可能是对Hibernate缓存机制的详细技术博客,但具体内容未给出。因此,我们将基于常规的Hibernate缓存知识进行解释。 **一、Hibernate一级缓存** 一级缓存是每个Hibernate Session内的缓存,它是一...
### Hibernate二级缓存技术详解 #### 一、概述 Hibernate 是一个开源的对象关系映射(ORM)框架,它简化了Java应用与关系型数据库之间的交互。为了提高性能和减少数据库的访问频率,Hibernate 提供了一级缓存和二...
### Hibernate配置二级与三级缓存详解 在Java开发领域中,Hibernate作为一种流行的ORM(对象关系映射)框架,被广泛应用于数据库操作。为了提高应用程序的性能,Hibernate支持多种级别的缓存机制,其中最为常见的是...
### Hibernate缓存技术研究 #### 一、引言 Hibernate是一种强大的对象-关系映射(Object-Relational Mapping,简称ORM)工具,主要用于Java环境下的应用程序。它能够将应用程序中的对象模型映射到关系型数据库的表...
通常,一级缓存由Hibernate Session管理,而二级缓存则可以跨越多个Session进行共享。 在Spring Boot项目中配置Redis作为Hibernate的二级缓存,我们需要以下步骤: 1. **添加依赖**: 首先,在`pom.xml`文件中...
3. **缓存机制**:支持一级缓存和二级缓存,有助于提高应用程序性能。 4. **查询语言**:提供了HQL(Hibernate Query Language),这是一种类似于SQL的语言,用于执行数据库查询。 #### 五、创建Hibernate演示项目 ...
- **一级缓存**:Hibernate 自动维护的一级缓存,用于存储从数据库加载的数据。 - **二级缓存**:可选地添加外部缓存插件(如 Ehcache)来提高性能。 - **懒加载**:默认情况下,Hibernate 使用懒加载策略来延迟加载...
文档"Hibernate_二级缓存总结 开发技术 - Java.doc"可能详细阐述了如何配置和使用Hibernate的二级缓存,包括配置文件的设置、缓存提供者的选用、实体和集合的缓存配置,以及实战中的优化技巧。阅读该文档将有助于...
总的来说,这个教程应该涵盖了Hibernate缓存的基础知识,包括一级缓存的工作方式、二级缓存的配置和使用、查询缓存的优缺点,以及如何在S2SH项目中实践这些概念。通过理解和实践这些内容,开发者能够更好地优化其...
4. 深入研究Hibernate的缓存机制,包括一级缓存(Session缓存)和二级缓存(可选的外部缓存服务)。 5. 分析事务管理,理解其如何与JTA(Java Transaction API)或JDBC事务协同工作。 五、实践与应用 在实际开发中...
本文将深入探讨Hibernate的一级缓存和二级缓存,以及二级缓存的数据存储结构。 首先,一级缓存是Hibernate默认提供的缓存,每个Session都有一个独立的一级缓存。当我们在操作数据库时,例如查询或更新记录,这些...
其中,Struts、Hibernate 和 Spring 是目前最流行的三种轻量级框架。 #### Struts、Hibernate 和 Spring 概述 **1. Struts MVC 设计模式** - **模型层(Model)**:负责处理业务逻辑,Struts 提供了 `Action` 和 ...
9. **缓存机制**:介绍Hibernate的缓存策略,包括一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存),以及第三方缓存集成,如 EhCache。 10. **性能优化**:分享提升Hibernate应用性能的技巧,...
它支持事务管理、查询语言(HQL)以及二级缓存等功能。 3. **Spring 3**:Spring 是一个开源的 Java 应用框架,提供了依赖注入、面向切面编程(AOP)、数据访问和事务管理等核心功能。Spring 3 是其一个版本,增强...
Hibernate提供了多种性能优化手段,如一级缓存和二级缓存机制,事务隔离级别设置,懒加载(Lazy Loading)策略等。合理运用这些机制,可以显著提升应用的响应速度和并发处理能力。 ### 结论 总的来说,“hibernate...
Hibernate的缓存层次结构包括一级缓存(Session级别的缓存)和二级缓存。一级缓存是每个Hibernate Session内的内存缓存,它是默认开启的,并且线程安全。当一个对象被加载到Session时,它会被放入一级缓存中,同一...
Hibernate支持两级缓存:第一级缓存是Session级别的,自动管理;第二级缓存可配置为共享缓存,如 EhCache,提高数据访问性能。 八、关联映射 1. 一对一(OneToOne):一个实体对象对应数据库中的一个记录。 2. 一对...
9. **缓存机制**:为了提高性能,Hibernate引入了缓存,包括第一级缓存(Session级别的缓存)和第二级缓存(SessionFactory级别的缓存),以及第三方缓存插件如Ehcache。 10. **实体状态**:Hibernate定义了四种...