`
kidiaoer
  • 浏览: 821884 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Hibernate中持久化类实例的三种状态

阅读更多
在Hibernate中持久化类实例的3种状态。Java对象有其自己的生命中期,从通过 new语句创建开始,到不再被任何变量引用结束,结束后它占用的内存将被JVM垃圾回收机制收回。在Hibernate中持久化类实例可以划分为3种状态,分别是临时状态、持久化状态和游离状态。
(1)临时状态
临时状态(transient)是指持久化类实例从通过new语句创建到被持久化之前,处于临时状态的持久化类实例简称“临时对象”。
临时对象具备如下特征:
不存在于Session实例的缓存中,不与任何Session实例相关联
在数据库中没有与之相对应的记录
促使持久化类实例进入临时状态的情况如下:
通过new语句创建新的持久化类实例
通过执行delete()方法删除持久化类实例
(2)持久化状态
持久化状态(persistent)是指持久化类实例从被持久化到Session实例被销毁,处于持久化状态的持久化类实例简称“持久化对象”。
持久化对象具备如下特征:
存在于Session实例的缓存中,与Session实例相关联
在数据库中有与之相对应的记录
Session实例在清理缓存时会根据持久化类实例属性的变化更新数据库
促使持久化类实例进入持久化状态的情况如下:
通过执行save()或saveOrUpdate()方法使临时对象转变为持久化对象
通过执行update()或saveOrUpdate()方法使游离对象转变为持久化对象
通过执行load()或get()方法返回的持久化类实例都是持久化类对象
通过执行find()方法返回的List集合中的持久化类实例都是持久化对象
在允许级联保存的情况下,Session实例在清理缓存时会把与持久化对象关联的临时对象转变为持久化对象
(3)游离状态
游离状态(detached)是指持久化类实例从关联它的Session实例被销毁到该实例消失,处于游离状态的持久化类实例简称“游离对象”。
游离对象具备如下特征:
不存在于Session实例的缓存中,不与任何Session实例相关联
在数据库中有与之相对应的记录(前提条件是没有其它Session实例删除该记录)
促使持久化类实例进入游离状态的情况如下:
通过执行evict()方法,可以从Session实例的缓存中删除一个持久化类实例,使之转变为游离对象
通过执行clear()方法,可以清空Session实例的缓存,使缓存中的所有持久化类实例转变为游离对象
通过执行close()方法,可以销毁Session实例,从而清空Session实例的缓存
(4)3种状态之间的转换过程
为了使读者更好的理解图1所示的持久化类实例的3种状态之间的转换过程,下面以列表的形式给出持久化类实例在程序中各状态之间的转换过程。
分享到:
评论

相关推荐

    Hibernate操作持久化对象

    Hibernate 操作持久化对象是Java开发中用于简化数据库交互的重要工具。它是一个开源的Java持久化框架,由Gavin King创建,并逐渐发展成为Java世界中主流的持久化解决方案。Hibernate的核心在于提供对象-关系映射(ORM...

    Hibernate数据持久化技术

    通过持久化,我们可以将应用程序中的对象状态保存到数据库中,以便在后续的使用中能恢复这些状态,而无需每次都需要重新从数据库查询。这提高了效率,减少了对数据库的直接操作,有助于降低系统复杂性。 ORM(对象...

    Hibernate持久化对象的生命周期

    首先,我们来看一下Hibernate中持久化对象的三种基本状态: 1. **瞬时对象(Transient Objects)**: - 当使用`new`关键字创建一个新的Java对象时,该对象是瞬时的。这意味着它们与数据库没有任何关联。如果对象...

    Hibernate 数据持久化

    本篇文章将深入探讨Hibernate的数据持久化机制,包括其基本概念、配置、实体类、映射文件以及查询操作。 1. **基本概念** - **对象关系映射(ORM)**: ORM是将关系数据库的数据模型与面向对象编程中的对象模型进行...

    hibernate持久化对象生命周期[参照].pdf

    本文将深入探讨Hibernate中的持久化对象生命周期,包括瞬时对象、持久化对象和游离对象的状态转换及其特性。 1. 瞬时对象(Transient Objects) 瞬时对象是指通过`new`操作符创建但尚未与数据库记录关联的Java对象...

    Hibernate 对象持久化

    对象持久化是将应用程序中的对象状态存储到持久化介质(如数据库)的过程,使得即使程序关闭,对象的状态也能被保留下来。在Hibernate中,对象的生命周期包括瞬时态、托管态、持久态和脱管态。通过Hibernate,我们...

    Hibernate执行持久层访问步骤

    1. 创建SessionFactory:通过Configuration类加载hibernate.cfg.xml配置文件,然后调用configure()方法,最后buildSessionFactory()生成SessionFactory实例。 2. SessionFactory是线程不安全的,通常在应用启动时...

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

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

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

    2. **对象状态**:Hibernate管理的对象具有三种状态:瞬时态(Transient)、持久态(Persistent)和脱管态(Detached),它们的状态转换由Hibernate的Session负责。 3. **JMX集成**:允许通过JMX(Java Management ...

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

    《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...

    Hibernate 基于持久层框架的DAO模式应用

    5. **持久化操作** 使用Hibernate进行CRUD操作非常直观。例如,通过Session的save()方法可以保存新对象到数据库,update()方法更新已存在的对象,delete()方法删除对象,而find()或get()方法用于根据主键检索对象。...

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

    处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 Java对象在JVM中的 生命周期 179 8.2 理解Session的缓存 181 8.2.1 Session的缓存的作用 182 ...

    Hibernate持久化类实现的增、删、查、改实例代码

    持久化类是Java对象,它对应数据库中的表。例如,我们有一个User类,它可能如下所示: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ...

    Hibernate 对象的三种状态和特点

    了解Hibernate对象的这三种状态,对于编写高效、稳定的持久化代码至关重要。正确管理对象状态可以帮助优化数据库交互,减少不必要的查询,提高系统的整体性能。在实际开发中,开发者需要根据业务需求和性能考虑,...

    hibernate--3.Hibernate数据持久化(通过 Session 操纵对象)

    Hibernate是一款强大的Java库,用于简化数据库操作,尤其是数据持久化。在Java开发中,它作为对象关系映射(ORM)工具,将复杂的SQL操作转化为对Java对象的操作,从而减轻了开发人员的工作负担。本篇文章主要关注...

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

    处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 Java对象在JVM中的 生命周期 179 8.2 理解Session的缓存 181 8.2.1 Session的缓存的作用 182 ...

    hibernate3实例包

    2. **配置文件**:在Hibernate 3中,主要的配置文件是`hibernate.cfg.xml`,它包含了数据库连接信息、持久化类信息等。 3. **实体类(Entity)**:在Hibernate中,Java类被视为实体类,它们被映射到数据库表。实体...

Global site tag (gtag.js) - Google Analytics