`
p_3er
  • 浏览: 55731 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

第四章 Hibernate中的持久化对象的生命周期

 
阅读更多

4.1提供对象状态管理的目的
使开发者不再需要理会底层数据库系统的细节
使用Hibernate的开发者应该总是关注对象的状态(state),不必考虑SQL语句的执行


4.2 Hibernate 仅仅定义了三种状态:瞬时(临时)、持久和脱管(游离),对客户端代码隐藏了其内部实现的复杂性
4.2.1 瞬时对象(Transient Object):Hibernate中的持久化对象的生命周期
使用new操作符初始化的对象不是立刻就持久的。它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所引用),它们的状态将会丢失,并由垃圾回收机制回收
4.2.2持久化对象(Persistent Object):
持久实例是任何具有数据库标识的实例,它有持久化管理器Session统一管理,持久实例是在事务中进行操作的----它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQL的INSERT、UPDATE和DELETE语句把内存中的状态同步到数据库中。
4.2.3游离对象(Detached Object):
Session关闭之后,持久化对象就变为游离对象。游离表示这个对象不能再与数据库保持同步,它们不再受hibernate管理。


4.3三种状态相互转换的说明



4.4总结:
Transient对象:随时可能被垃圾回收器回收(在数据库中没有于之对应的记录,应为是new初始化),而执行save()方法后,就变为Persistent对象(持久性对象)。没有纳入session的管理。内存中一个对象,没有ID,缓存中也没有。
Persistent对象:在数据库有存在的对应的记录,纳入session管理。在清理缓存(脏数据检查)的时候,会和数据库同步。内存中有、缓存中有、数据库有(ID)。
Detached对象:也可能被垃圾回收器回收掉(数据库中存在对应的记录,只是没有任何对象引用它是指session引用),注引状态经过Persistent状态,没有纳入session的管理。




分享到:
评论

相关推荐

    精通Hibernate:Java持久化对象技术详解[第二版]

    《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...

    精通Hibernate:Java对象持久化技术详解

    6. **实体生命周期管理**:Hibernate自动管理对象的状态,包括瞬态、持久化、托管和脱管四种状态,以及它们之间的转换。 7. **多对一、一对多、多对多关系映射**:Hibernate支持复杂的关联关系映射,如单向关联、...

    Hibernate 对象持久化

    在Hibernate中,对象的生命周期包括瞬时态、托管态、持久态和脱管态。通过Hibernate,我们可以轻松地将对象从内存中保存到数据库,或者从数据库中加载到内存。 **三、Hibernate配置** 使用Hibernate,首先需要配置...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     8.3 Java对象在Hibernate持久化层的状态  8.3.1 临时对象的特征  8.3.2 持久化对象的特征  8.3.3 被删除对象的特征  8.3.4 游离对象的特征  8.4 Session接口的详细用法  8.4.1 Session的save()和persist()...

    Hibernate 面试题

    1. **持久化对象的生命周期**:在Hibernate中,对象经历了临时态、持久态和游离态三个状态。临时态的对象没有与Session关联,数据未保存到数据库;持久态对象已与Session绑定,其状态会随Session的提交而保存到...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...

    精通Hibernate:对象持久化技术第二版part3

    本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...

    深入理解持久化对象

    持久化对象是Hibernate框架的核心概念之一,通过合理的状态管理和生命周期控制,可以极大地提高应用程序的开发效率和维护性。理解和掌握持久化对象的状态转换及修改方法,对于高效使用Hibernate框架至关重要。

    hibernate持久化技术详解.孙卫琴.代码2

    **hibernate持久化技术详解** Hibernate是一款强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用中操作数据库的强大工具。通过Hibernate,开发者可以将数据库操作转化为对Java对象的操作,大大降低了...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     8.3 Java对象在Hibernate持久化层的状态  8.3.1 临时对象的特征  8.3.2 持久化对象的特征  8.3.3 被删除对象的特征  8.3.4 游离对象的特征  8.4 Session接口的详细用法  8.4.1 Session的save()和persist()...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     8.3 Java对象在Hibernate持久化层的状态  8.3.1 临时对象的特征  8.3.2 持久化对象的特征  8.3.3 被删除对象的特征  8.3.4 游离对象的特征  8.4 Session接口的详细用法  8.4.1 Session的save()和persist()...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     8.3 Java对象在Hibernate持久化层的状态  8.3.1 临时对象的特征  8.3.2 持久化对象的特征  8.3.3 被删除对象的特征  8.3.4 游离对象的特征  8.4 Session接口的详细用法  8.4.1 Session的save()和persist()...

    Hibernate执行持久层访问步骤

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

    1对象持久化与hibernate基础共48页.pdf.zi

    对象持久化与Hibernate是Java开发中的重要概念,主要用于解决应用程序中的数据存储问题。在数据库管理系统中,对象持久化是指将程序中的对象状态转化为可以长期存储的形式,以便在后续的运行时能够恢复这些状态。 ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    HIBERNATE符合Java习惯的关系数据库持久化

    9. **实体状态**:Hibernate将实体对象的状态分为瞬时态、持久态、游离态和删除态,理解这些状态有助于我们更好地控制对象的生命周期和数据操作。 通过学习以上知识点,你可以全面掌握Hibernate的使用,实现Java...

    hibernate-符合Java习惯的关系数据库持久化

    9. **生命周期:** Hibernate对象有瞬时态、持久态、托管态和游离态四种状态,理解这些状态对于正确使用Hibernate至关重要。 10. ** Hibenate事件和监听器:** Hibernate提供了一套事件系统,允许用户在特定操作...

    hibernate_persistence第17-23章书中代码

    《hibernate_persistence》是关于Hibernate持久化技术的一本书,涵盖了从第17章到第23章的代码示例。这些章节的代码主要涉及了Hibernate在数据库操作中的核心功能,包括查询条件设置、高级查询、数据源配置以及与...

    hibernate中文参考文档pdf

    12. **实体生命周期**:阐述了Hibernate中实体的生命周期状态(瞬时、持久化、脱管和临时),以及状态转换和事件监听。 13. **性能优化**:提供了一些最佳实践和技巧,如批处理、延迟加载、缓存配置等,以提高...

Global site tag (gtag.js) - Google Analytics