`
java_刘雄飞
  • 浏览: 18437 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate中不为人知的细节

    博客分类:
  • SSH
阅读更多
hibernate的缓存

研究缓存:
1、一个持久化对象是在什么时候放进缓存中的
当执行session.get,load,save,update方法

2、在什么时候可以把缓存中的数据提取出来
如果缓存中有数据,则从缓存中拿出数据

3、缓存中的数据和数据库中的数据同步的问题
oscache  ehcache  josscache
--1、session.save或者session.update本身就是同步数据的过程
--2、可以利用session.flush做到数据的同步


注意点:
1、一级缓存又叫session缓存
2、一级缓存的生命周期和session的声明周期紧密相连的

sessionFactory.openSession  -->一级缓存就开始起作用了

session.close-->session缓存中的数据全部清空了


通过session.get方法把一个持久化对象放入到一级缓存中,即放入到session缓存中
session.load
session.save
session.update


createQuery产生的数据是不会放到一级缓存中的,即session缓存

当执行session.get(Classes.class,1);的时候,把id 为1的classes对象放入到session的缓存中
当执行session.close时,意味着session的生命周期结束了


当缓存中有数据,则先从缓存中提取数据,如果缓存中没有数据,则向数据库要数据


如何清空session中的缓存数据?

测试session.evict--清空某一个对象的缓存
测试session.clear--清空所有缓存

当这个数据是共享的情况下,加载这个数据,最好先evict清空缓存,这样得到的结果肯定是与数据库同步的


session.flush
作用:
1、检测session缓存中的数据,如果发现持久化对象和数据库不同步,会发出SQL语句,保持对象和数据库的同步状态

2、在同步数据的过程中,并不情空缓存


说明:没有显示调用session.flush方法,则session.save或者session.update方法:
1、把参数的持久化对象同步到数据库中
2、把session缓存中的数据同步到数据库中
3、把参数的持久化对象放入到session的幻存中
分享到:
评论

相关推荐

    hibernate中文文档 HTML格式

    3. 异步操作:通过使用Hibernate的异步API,可以在后台线程中执行数据库操作,不阻塞主线程。 4. 事件监听:可以注册监听器来响应特定的ORM事件,如对象的保存、更新或删除。 在“Hibernate中文文档 HTML格式”中,...

    hibernate中文帮助文档

    Hibernate 是一个流行的对象...总的来说,这个中文帮助文档详尽地阐述了使用Hibernate注解进行数据库映射的各种细节,对于理解和使用Hibernate进行Java开发非常有帮助。无论是新手还是经验丰富的开发者,都能从中受益。

    Hibernate中文API大全

    当删除对象时, Hibernate必须使用每一个字段的值来确定一条记录(在组合元素表中,没有单独的关键字段), 如果有为null的字段,这样做就不可能了。你必须作出一个选择,要么在组合元素中使用不能为空的属性,要么...

    hibernate 中文参考文档

    根据给定的文件信息,我们将深入探讨Hibernate框架的相关知识点,特别是在中文参考文档中提及的关键概念和技术细节。 ### Hibernate概述 Hibernate是一种开源的对象关系映射(ORM)框架,用于Java应用程序与数据库...

    Hibernate官方中文参考手册+Hibernate开发指南+Hibernate的两本英文书籍

    在Java开发中,Hibernate提供了一种抽象层,允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL语句,极大地提高了开发效率。 《Hibernate官方中文参考手册》是学习Hibernate的基础,它详细介绍了...

    HibernateAPI中文文档

    Hibernate开发者指南,包括HIBERNATE - Relational Persistence for Idiomatic Java.pdf,Hibernate Getting Started Guide.pdf,Hibernate Developer Guide.pdf,Hibernate 中文API文档.chm,Hibernate3.2.chm。

    hibernate3 中文参考手册

    Hibernate3作为该框架的一个版本,提供了对数据库操作的抽象,使得开发者可以更加专注于Java代码,而不必深入了解SQL语句的细节。 Hibernate的初学者指南通常包含以下内容: 1. Hibernate框架基础:介绍Hibernate的...

    hibernate3.3.0中文文档

    hibernate hibernate3 hibernate3中文 hibernateAPI

    Hibernate中文帮助文档

    Hibernate框架中文帮助文档 CHM格式

    Hibernate 中文手册 3.2.pdf

    由于提供的文件内容实际上是关于Linux公社的介绍,并未包含Hibernate的具体知识点或技术细节,我将基于Hibernate框架本身的知识点进行描述。 Hibernate是一款流行的Java语言编写的开源对象关系映射(ORM)框架,它...

    hibernate中文参考文档.pdf

    Hibernate内置了一系列性能优化机制,如二级缓存、懒加载等,这些机制可以在不牺牲应用灵活性的前提下显著提升应用的运行效率。 #### 7. 社区支持 作为一款成熟的开源项目,Hibernate拥有庞大的社区支持体系。这...

    Hibernate4.1.11中文手册

    通过《Hibernate4.1.11中文手册》,开发者不仅可以深入理解Hibernate的工作原理,还能掌握其在实际项目中的应用技巧,从而提高开发效率和软件质量。这份资源对于任何使用Java进行数据库开发的人来说,都是一份宝贵的...

    Hibernate3中文文档

    Hibernate作为一款开源的对象关系映射(ORM)框架,极大地简化了Java应用程序对数据库的操作,使得开发者可以更加专注于业务逻辑,而非底层的数据访问细节。 在Hibernate3版本中,主要包括以下几个核心知识点: 1....

    Hibernate中文手册API

    Hibernate中文手册API,chm格式

    hibernate4.1中文官方文档

    总结,Hibernate 4.1中文官方文档详尽地涵盖了所有这些概念及其应用,是学习和实践中不可或缺的参考资料。无论是初学者还是有经验的开发者,都能从中受益匪浅。要获取这份文档,可以访问提供的下载地址:...

    hibernate显示不带?的完整sql

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在开发过程中,为了调试和优化SQL查询,有时我们需要查看Hibernate生成的完整SQL语句,包括其参数...

    Beginning Hibernate: For Hibernate 5

    - **专注 Hibernate**: 本书重点在于介绍 Hibernate 的使用方法和技术细节,避免引入不必要的第三方工具。 - **实例丰富**: 作者提供了大量实用的例子,帮助读者更好地理解概念并应用于实践。 - **非理论性**: 书中...

Global site tag (gtag.js) - Google Analytics