`

Hibernate学习之----------对象的三种状态

阅读更多

 

在Hibernate中对象的状态变化是比较频繁的,如果单从其状态有三种状:

  1. transient (瞬时态),
  2.                detached (托管态)
  3.                persistant (持久态).

下面来理解三种状态:

1.transient瞬时态:

    该状态下的对象即是在new出一个对象后,没有调用任何其他的hibernate的save,update方法,也没有commit,换句话说就是只在内存中存在,session的缓存中没有,数据库中也没有.

2.persistant (持久态):

   该状态下的对象在内存中存在,在session的缓存中也有,数据库中也存在,很可能发生在场创建对象并用事务提交到数据库中后的状态。

3.detached (托管态)

  该状态下的对象在内存中存在,在session的缓存中没有,而在数据库中以保存存在,因此这种状态多发生在保存一个对象并关闭了session之后,这样session的缓存中就不存在该对象了!

 

Hibernate中持久化对象的生命周期有临时态、持久态和游离态三种。
处于临时态的对象主键值为空,并且未与session关联,数据未保存到数据库中
处于持久态的对象与session关联起来,持久化后对象中的数据被保存到数据库中,并且主键值按照.hbm.xml文件中配置的生成方式生成相应的值
处于游离态的对象脱离了session的管理,是持久化后的一种状态,主键值按照.hbm.xml文件中配置的生成方式生成相应的值
当new一个新的对象时,该对象处于临时态
当该对象被当作session的参数使用的时候,该对象处于持久态
事务提交,session关闭后,该对象处于游离态

 

 

以上仅代表个人观点!

分享到:
评论

相关推荐

    hibernate-distribution-3.6.0

    6. **事件监听机制**:Hibernate提供了丰富的事件监听接口,如PreInsertEventListener,PostLoadEventListener等,使得开发者可以通过监听对象的状态变化来执行相应的业务逻辑。 7. **多态支持**:Hibernate支持...

    hibernate源码release-4.1.4.Final版

    其中,save()适合新对象的插入,update()用于已存在对象的更新,merge()则是合并当前对象状态到持久化对象,delete()则删除对象。 七、事件监听 Hibernate允许用户自定义监听器,如PreInsertEventListener、...

    hibernate-orm-master.zip

    Hibernate ORM(Object-Relational Mapping)是Java领域中最受欢迎的持久化框架之一,它提供了一种便捷的方式将Java对象映射到关系数据库,从而实现了对象-关系的解耦。"hibernate-orm-master.zip"文件包含了...

    hibernate-memcached-1.1.0-sources.zip

    而Memcached则是一种高性能、分布式的内存对象缓存系统,可以用于存储临时性的、不经常变动的数据,以减轻数据库的负载,提高数据读取速度。 整合Hibernate与Memcached,主要是为了利用Memcached的高速缓存特性,...

    hibernate-release-5.0.11.Final

    Hibernate,作为Java领域中最著名的对象关系映射(ORM)框架之一,为开发者提供了便捷的数据库操作方式,极大地简化了Java应用中的数据访问层代码。在5.0.11.Final版本中,Hibernate引入了一系列的改进和优化,使其...

    hibernate-distribution-3.6.2.Final-dist

    2. 对象状态管理:管理对象的生命周期,包括瞬时态、持久态、托管态和脱管态。 3. 数据缓存:通过二级缓存机制提高性能,如使用Ehcache作为默认缓存提供商。 4. HQL和 Criteria API:强大的查询语言,可进行复杂的...

    hibernate-commons-annotations-3.1.0.GA

    在Hibernate Commons Annotations 3.1.0.GA版本中,我们看到了一套稳定且功能丰富的API,它为开发人员提供了更加灵活的ORM(对象关系映射)解决方案。 首先,我们来了解什么是Hibernate。Hibernate是一个开源的Java...

    hibernate-distribution-3.5.0-Final-dist

    在这个发行版中,API文档详细地介绍了每个接口、类和方法的用法,帮助开发者快速掌握如何创建Session工厂、开启和提交事务、执行查询、管理对象状态等操作。特别地,Criteria API和HQL(Hibernate Query Language)...

    Hibernate-3.2-API-EN.rar

    Hibernate作为一种流行的ORM工具,通过提供一种对象-关系映射机制,使得Java开发者可以避免直接与SQL打交道,从而提高了开发效率。它的核心特性包括:持久化对象的管理、查询语言(HQL)和Criteria API、事务处理...

    hibernate-html-single

    7. **Criteria API**: 一种更加面向对象的查询方式,提供了构建动态查询的API,比HQL更灵活,适用于复杂的查询场景。 8. **级联操作(Cascading)**: 级联允许在操作一个实体时,自动处理与其关联的其他实体。例如...

    Hibernate---我的Hibernate学习笔记.doc

    ### Hibernate—我的Hibernate学习笔记 #### 一、对象持久化的理论与实践 ##### 对象持久化概念 对象持久化指的是将内存中的对象状态保存至外部持久性存储设备(如硬盘),以便于日后需要时能够恢复其状态。这一...

    hibernate-min-lib.rar

    三、Hibernate对象状态 Hibernate定义了四种对象状态:瞬时态、持久态、托管态和脱管态,理解这些状态有助于更好地控制对象的生命周期。 四、实体类与表映射 通过注解或XML文件,我们可以将Java类映射到数据库表,...

    hibernate-distribution-3.5.0-Final

    Hibernate,作为Java领域最著名的对象关系映射(ORM)框架之一,自诞生以来就极大地简化了数据库操作,使得开发者能够更加专注于业务逻辑而不是繁琐的数据访问层实现。在`hibernate-distribution-3.5.0-Final`这个...

    《精通Hibernate》学习-对象关系映射基础.zip

    Hibernate自动处理对象状态的转换,如临时、持久化、脱管和删除。 7. HQL(Hibernate Query Language):HQL是Hibernate的查询语言,类似于SQL,但它是面向对象的。它允许我们以类和属性的名称进行查询,而不是表和...

    hibernate-release-4.3.11.Final.zip

    《深入剖析Hibernate 4.3.11.Final:源码探索之旅》 Hibernate,作为Java领域中的一个著名持久化框架,一直以来都是开发者们的重要工具。本次我们将通过深入研究`hibernate-release-4.3.11.Final.zip`这个压缩包,...

    hibernate-distribution-3.3.2.GA-dist.zip

    - Session:是Hibernate的主要工作单元,负责与数据库的交互,提供了事务管理和对象状态管理。 - Criteria API:提供了一种动态构造查询的方式,比HQL更为灵活。 - Query和HQL:Hibernate查询语言,允许开发者以...

    hibernate_orm-master

    五、对象状态与生命周期 Hibernate管理对象的四种状态:瞬时态、持久态、脱管态和临时态。理解这些状态有助于更好地掌握对象的保存、更新和删除操作。 六、HQL与 Criteria 查询 Hibernate Query Language (HQL) 是...

Global site tag (gtag.js) - Google Analytics