`
阅读更多

Hibernate 的缓存体系
一级缓存:
Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。
每个Session 都有自己独立的缓存,且只能被当前工作单元访问。
二级缓存:
SessionFactory的外置的可插拔的缓存插件。其中的数据可被多个Session共享访问。
SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。 

 

Hibernate 中Java对象的状态


1.临时状态 (transient)
   1不处于Session 缓存中
   2数据库中没有对象记录
何时进入临时状态?
   1通过new语句刚创建一个对象时
   2当调用Session 的delete()方法,从Session 缓存中删除一个对象时。 

 

2.持久化状态(persisted)
   1处于Session 缓存中
   2持久化对象数据库中设有对象记录
   3Session 在特定时刻会保持二者同步
何时进入持久化状态?
   1Session 的save()把临时->持久化状态
   2Session 的load(),get()方法返回的对象
   3Session 的find()返回的list集合中存放的对象
   4Session 的update(),saveOrupdate()使游离->持久化


3.游离状态(detached)
   1不再位于Session 缓存中
   2游离对象由持久化状态转变而来,数据库中可能还有对应记录。
何时进入持久化状态?
   1Session 的close()方法
   2Session 的evict()方法,从缓存中删除一个对象。

分享到:
评论

相关推荐

    Accp6.0 Y2 Hibernate内部+阶段测试答案

    【标题】"Accp6.0 Y2 Hibernate内部+阶段测试答案"涉及到的是关于 ACCP(阿帕奇软件基金会认证的计算机程序员)6.0版本的第二年(Y2)学习阶段,对Hibernate框架的深入理解和应用。Hibernate是一个开放源代码的对象...

    解决hibernate在Myeclipse运行不正常

    解决hibernate在MyeclipseH不能正常运行问题

    hibernate内部留言系统源码(java)

    【hibernate内部留言系统源码(java)】是一个基于Java编程语言并利用Hibernate框架实现的内部通信系统。这个系统的主要目标是为用户提供一个在组织内部进行信息交流和沟通的平台。通过使用Hibernate,开发者可以...

    hibernate3运行环境jar包

    本人也是初学者,初次建造hibernate开发环境,幸运的是成功了,现在那出来分享下。内有hibernate运行说需的jar包(asm.zip, cglib-2.1_2jboss.jar, dom4j-1.6.1.jar ,hibernate3.jar, jta.jar)

    菜鸟快速运行第一个hibernate

    标题“菜鸟快速运行第一个hibernate”表明了这是一个针对初学者的教程,旨在帮助他们快速上手并成功运行他们的第一个Hibernate项目。Hibernate是一个强大的Java ORM(对象关系映射)框架,它简化了数据库操作,使得...

    hibernate tools源码运行或修改需要的jar

    要运行或修改Hibernate Tools的源码,首先需要确保你拥有所有必要的依赖库,这些依赖通常以jar文件的形式存在。以下是一些关键的知识点: 1. **Hibernate ORM框架**:Hibernate是一个开源的对象关系映射(ORM)框架...

    hibernate-entitymanager-5.4.24.Final.jar_hibernate运行期添加实体

    hibernate-entitymanager-5.4.24.Final.jarhibernate-entitymanager-5.4.24.Final.jar

    hibernate tool 非eclipse插件方式运行

    【标题】"Hibernate Tool非Eclipse插件方式运行"涉及的是在不依赖Eclipse环境的情况下,如何使用Hibernate Tool工具进行数据库操作。Hibernate Tool是Hibernate框架的一部分,它提供了一系列命令行工具,可以用来...

    struts + DAO + Hibernate可直接运行程序

    在这个“Struts + DAO + Hibernate可直接运行程序”中,我们可以深入理解这三个框架如何协同工作以实现高效的数据访问和业务逻辑处理。 **Struts框架**是MVC(Model-View-Controller)设计模式的一种实现,主要用于...

    Hibernate执行持久层访问步骤

    1. 第一级缓存:Session内部维护的缓存,保存了Session生命周期内的对象,自动管理读写操作。 2. 第二级缓存:可选配置,通过插件如Ehcache实现,跨Session共享,提高性能。 以上就是Hibernate执行持久层访问的基本...

    hibernate jar包

    标题中的“hibernate jar包”指的是Hibernate框架所需的一系列Java类库文件,通常以jar格式打包,包含了运行Hibernate所需的各种组件。这些jar文件包含了Hibernate的核心API、数据库驱动、缓存机制以及用于处理对象...

    hibernate-release-4.1.4

    【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate的所有核心API、实现和依赖库,如Hibernate Commons Annotations、Hibernate EntityManager、Hibernate Core等。...

    Hibernate开发租房系统终极版(可运行-附数据库脚本)

    Hibernate开发租房系统终极版(可运行 附数据库脚本) 最近看了CSDN上几个Hibernate开发的租房系统 不是版本太老就是不能运行 闹心了一星期 自己终于成功运行 另附上Oracle开发脚本 注意:一 MyEclipse8的可直接...

    Hibernate学习笔记整理

    2. 说明:当执行 19 行代码的时候,person 对象由临时状态转化成持久化状态,这个时候数据库没有对应的数据,但是该对象在 Hibernate 内部。 3. 说明:当执行 20 行代码的时候,事务提交了,该对象还是持久化状态的...

    hibernate必要的jar包

    在Hibernate中,你需要一个具体的日志实现来记录框架内部的调试信息和警告。 6. **javassist.jar**:这个库是Hibernate的代码生成器,用于动态创建和修改类,特别是在运行时根据映射信息生成代理类。 7. **jta.jar...

    hibernate运行环境

    在Java开发环境中配置Hibernate,首先需要搭建一个完整的运行环境,这包括安装必要的软件、导入所需的jar文件以及配置相关的属性。下面将详细阐述如何配置Hibernate的开发环境以及jar文件的重要性。 1. **安装Java...

    Hibernate 配置各种数据库

    Hibernate 配置各种数据库 Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等...

    hibernate-最少依赖jar包

    7. **jboss-logging.jar**:JBoss的日志框架,Hibernate内部使用它进行日志记录。 8. **antlr-runtime.jar**:ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,Hibernate使用它...

    Hibernate Hibernate5 讲义 PDF

    Hibernate使用配置好的映射文件和主配置文件,在运行时自动将数据对象转换成数据库中的记录,并且可以将数据库记录转换回数据对象。Hibernate的懒加载、缓存策略以及事务管理等高级特性,使得它能高效地与关系型...

    JSF2.2.6+Spring + Hibernate整合可运行

    这个“JSF2.2.6+Spring + Hibernate整合可运行”项目,旨在提供一个完整的、可运行的框架,以便开发者能够快速搭建基于这些技术的系统。下面我们将详细探讨这三个关键组件以及它们如何协同工作。 **JavaServer ...

Global site tag (gtag.js) - Google Analytics