`
gary0416
  • 浏览: 334811 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java对象在Hibernate中的状态

阅读更多

java对象在Hibernate中的状态

1.         临时状态(transient):刚用new语句创建,还没有被持久化,并且不处于Session缓存中.临时对象.

2.         持久化状态(persistent):已经被持久化,并且加入到Session的缓存中.持久化对象.

3.         删除状态(removed):不再处于Session的缓存中,并且Session已经计划将其从数据库中删除,被删除对象.

4.         游离状态(detached):已经被持久化,但不再处于Session的缓存中.游离对象.

 

临时对象的特征

1.         使用代理主键的情况下,OID通常为null.

2.         不处于Session的缓存中,即不被任何一个Session实例关联.

3.         在数据库中无对应记录.

在以下状态下,Java对象进入临时状态

1.  当通过new语句刚创建一个Java对象,此时处于临时状态,不和数据库中的任何记录对应.

2.  Hibernate配置文件中的hibernate.use_identifier_rollback属性为true的情况下,Sessiondelete()方法能使一个持久化对象或游离对象转变为临时对象.

 

持久化对象的特征

1.         OID不为null.

2.         位于一个Session实例的缓存中,即总是被一个Session实例关联.

3.         持久化对象和数据库中的相关记录对应.

4.         Session在清理缓存时,会根据持久化对象的属性变化,同步更新数据库.

使Java对象进入持久化状态

1.         Sessionsave()方法把临时对象转变为持久化对象.

2.         Sessionload()get()方法返回的对象总是处于持久化状态.

3.         Querylist()方法返回的List集合中存放的都是持久化对象.

4.         Sessionupdate(),saveOrUpdate(),lock()方法使游离对象转变为持久化对象.

5.         当一个持久化对象关联一个临时对象,在允许级联保存的情况下,Session在清理缓存时会把这个临时对象也转变为持久化对象.

 

被删除对象的特征

1.         OID不为null.

2.         从一个Session实例的缓存中删除.

3.         被删除对象和数据库中的相关记录对应.

4.         Session已经计划将其从数据库中山喊出.

5.         Session在清理缓存时,会执行SQL DELETE语句,删除数据库中的相应记录.

6.         一般情况下,应用程序不应该再使用被删除的对象.

以下情况Java对象进入删除状态

1.         Hibernate配置文件中的hibernate.use_identifier_rollback属性取默认值false的情况下,Sessiondelete()方法吧持久化对象及游离对象转变为被删除对象.

2.         当一个持久化对象A关联一个持久化对象B,在允许级联删除的情况下,Session删除持久化对象A,会级联删除持久化对象B,使得持久化对象Ahead持久化对象B都进入删除状态.

 

游离对象特征

游离对象有以下特征

1.         OID不为null.

2.         不再位于Session的缓存中,即不被Session关联.

3.         游离对象是由持久化对象转变过来的,因此在数据库中可能还存在与它对应的记录(前提是没有其它程序删除这条记录)

Session的以下方法时持久化对象转变为游离对象

1.         当调用Sessionclose()方法时,Session的缓存被清空,缓存中所有持久化对象都变为游离对象.如果在应用程序中没有引用变量引用这些游离对象,它们就会结束生命周期.

2.         Sessionevict()方法能够从缓存中清除一个持久化对象,使它变为游离对象.

3.         Sessionclear()方法能够清除缓存中的所有持久化对象.

 

1
0
分享到:
评论

相关推荐

    精通Hibernate:Java对象持久化详解.zip

    《精通Hibernate:Java对象持久化详解》是一本深入解析Hibernate技术的专著,它主要针对Java开发者,旨在帮助他们理解和掌握Java对象持久化的精髓。Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了...

    Hibernate 对象的三种状态和特点

    在Java的持久化框架Hibernate中,对象的状态是理解其工作原理的关键部分。这些状态决定了对象与数据库之间的关联程度,以及Hibernate如何处理对象的生命周期。以下是Hibernate对象的三种主要状态及其特点: 1) 临时...

    JavaPersistenceWithHibernate

    这本书详尽地阐述了如何使用Hibernate进行数据持久化,从而帮助开发者在Java应用程序中高效地管理和操作数据库。 ORM框架如Hibernate是Java开发中的重要工具,它允许程序员使用面向对象的方式来处理数据库操作,...

    Java EE+hibernate

    Hibernate是一个开源的对象关系映射(ORM)框架,允许开发者将Java对象映射到数据库表,并自动处理对象与数据库之间的转换。它是Java EE应用中最常用的数据访问层解决方案之一。 - **特点**: - **透明性**:通过...

    Hibernate中对象的三种状态

    它们没有持久化标识(ID),在Hibernate的眼里,这些对象就像普通的Java对象,如果程序结束或者对象引用丢失,这些对象就会被垃圾回收器清除,数据不会保存到数据库中。在Hibernate中,通过`new`关键字创建的对象...

    精通 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()...

    Java 精通Hibernate对象持久化技术权威指南

    总的来说,这本书和配套文档为Java开发者提供了全面的Hibernate学习资源,无论你是初学者还是有经验的开发者,都能从中受益匪浅,提升你在J2EE开发中的对象持久化能力。通过深入理解和实践,你可以更加自如地应对...

    Hibernate对象状态以及各种保存方法的区别

    在 Hibernate 中,对象的状态管理是至关重要的,因为它直接影响到对象如何与数据库交互。以下是 Hibernate 中对象的三种状态以及相关的保存方法: 1. **瞬时对象(Transient Objects)** - 当使用 `new` 关键字...

    hibernate对象三种状态

    在Java的持久化框架Hibernate中,对象存在三种不同的状态,分别是持久态(Persistent)、自由态(Transient)和游离态(Detached)。这三种状态分别对应了对象与数据库的关联程度,理解它们对于高效地使用Hibernate...

    java Hibernate 中文API文档

    1. **对象关系映射(ORM)**:Hibernate通过ORM机制,将Java对象转换为数据库中的记录,反之亦然。这样,程序员可以使用面向对象的方式处理数据库操作,降低了数据库操作的复杂性。 2. **Session接口**:Hibernate...

    Manning - Java Persistence With Hibernate.pdf

    《Java Persistence with Hibernate》是Java开发领域中一本深入探讨Hibernate持久化框架的重要著作。这本书由Christian Bauer和Gavin King合著,详细阐述了如何利用Hibernate进行数据库操作和对象关系映射(ORM)。 ...

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

    《精通Hibernate:Java对象持久化技术详解》一书聚焦于Java开发中的对象持久化技术,主要围绕Hibernate这一流行ORM框架进行深入探讨。Hibernate是Java世界里的重要工具,它简化了数据库操作,使得开发者可以更加专注...

    Hibernate中的实体状态及转换

    在Java的ORM框架Hibernate中,实体管理是其核心功能之一,而实体的状态管理则是理解Hibernate工作原理的关键。本文将深入探讨Hibernate中的实体状态及其转换,帮助开发者更好地掌握如何有效地使用Hibernate进行数据...

    hibernate对象三状态及OneToOne&OneToMany&ManyToMany

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细阐述Hibernate中的对象三状态、一对一(OneToOne)、一对多...

    Java+Persistence+with+Hibernate

    《Java+Persistence+with+Hibernate》是一本深入探讨如何在Java应用程序中利用Hibernate进行持久化开发的指南。这本书主要关注于使用Hibernate框架来处理数据库交互,以实现对象关系映射(ORM)。Hibernate作为Java...

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

    Hibernate是Java开发领域中广泛使用的持久层框架,它允许开发者将数据库操作与业务逻辑解耦,通过对象模型来管理和操作数据,大大简化了传统SQL编程的复杂性。 本书内容涵盖了Hibernate的基础知识到高级应用,包括...

    Hibernate持久化对象的生命周期

    Hibernate的核心概念之一就是持久化对象的生命周期,这涉及到对象在数据库中的状态及其与Session的关系。 首先,我们来看一下Hibernate中持久化对象的三种基本状态: 1. **瞬时对象(Transient Objects)**: - ...

    Hibernate对象持久化状态

    在 Hibernate 框架中,Java 对象的状态管理和 Session 缓存是核心概念,它们直接影响着数据的持久化过程和数据库交互效率。本篇文章将详细阐述 Hibernate 中对象的三种状态——临时状态、持久化状态和游离状态,以及...

    精通Hibernate:java对象持久化技术

    【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...

Global site tag (gtag.js) - Google Analytics