`

hibernate实体的几种状态:

阅读更多


hibernate实体的几种状态:


 实体的生命周期中,实体主要经过瞬时(Transient),托管(Attatched或Managed),游离(Detached)和销毁(Removed)四个状态.


 瞬时状态:是指对象被new之后尚未保存到数据库,一旦服务器停止,JVM会回收它所占的内存资源,此时对象没有与session关联.


 托管状态:在数据库中已有数据与之对应,且与session相关联。实体状态转换到托管状态的方法:
  A.调用persist(),实体从游离转变到托管,最后变成持久化状态. 
  B.调用find()或Query执行查询,实体从持久变成托管.
  C.调用refresh(),游离实体将被重新加载,变成托管状态.
  D.调用merge(),将游离实体变成托管实体.


 游离状态:数据库中有数据与之对应但不在session的管理范围,它的属性不与数据库中持久化的实体同步.  
  实体从托管变成游离的情况有:
   A.当一个事务结束,实体超过持久化上下文作用域,实体变成游离态
   B.当复制实体对象或序列化时,实体将变成游离态
   C.调用clear方法时,所有的实体将强制转化为游离态


 销毁状态:是实体从数据库删除后的状态

分享到:
评论

相关推荐

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

    2. **对象关系映射(ORM)**:详述Hibernate的实体类、注解和XML映射文件,如何定义对象的属性与数据库字段的对应关系,以及如何处理一对多、一对一、多对多等复杂关系。 3. **Session和Transaction管理**:讲解...

    hibernate独立开发包

    12. **实体状态**:Hibernate将实体对象的状态分为瞬时态、持久态和脱管态,理解这些状态有助于更好地控制对象的生命周期。 在实际开发中,你需要根据项目需求,正确配置Hibernate,创建实体类,编写DAO(数据访问...

    hibernate培训

    - Hibernate定义了三种状态:瞬时态、持久态和脱管态。了解这些状态对于管理对象的生命周期至关重要。 8. **Hibernate查询**: - Hibernate支持HQL(Hibernate Query Language)和Criteria API,它们提供了更面向...

    hibernate 全面中文帮助 CHM文档

    4. **实体状态管理**:Hibernate识别四种状态:瞬时、持久化、托管和脱管,理解这些状态有助于正确操作对象。 综上所述,Hibernate CHM文档将覆盖这些核心概念及使用技巧,帮助开发者更好地掌握和运用Hibernate,...

    如何解决hibernate自动更新实体类的问题共5页.pd

    2. **使用Detached状态**:Hibernate的对象有四种状态:Transient、Persistent、Detached和Removed。当对象被detach(分离)后,它的状态变为Detached,此时对它的修改不会触发数据库更新。在需要更新时,再将...

    Hibernate开发向导

    - **事务模式**:介绍了几种常见的事务处理模式及其适用场景。 - **Session-per-operation反模式**:每次操作都开启一个新的Session,不适合多操作业务场景。 - **Session-per-request模式**:在一个请求周期内...

    hibernate源码

    Hibernate定义了实体的几种状态:瞬时态、持久态、游离态和删除态。通过不同的状态转换,Hibernate实现了对象的生命周期管理,如持久化对象的持久化、检索、更新和删除。 九、实体关系映射 Hibernate支持多种关系...

    Hibernate框架笔记

    2. **ORM概念解析**:ORM(Object Relational Mapping)即对象关系映射,这是一种编程技术,用于将面向对象编程语言中的对象模型与关系型数据库中的数据模型之间建立映射。在编写程序时,开发者可以使用面向对象的...

    hibernate javadoc 4.2.1

    10. **状态转换**:Hibernate中的实体有四种状态:瞬时态、持久态、脱管态和托管态,了解这些状态及其转换对于理解对象生命周期至关重要。 11. **类型系统**:Hibernate提供了一套丰富的类型系统,包括基本类型和...

    Hibernate3中文文档

    13. **实体状态**:Hibernate将实体的状态分为瞬时、持久化、脱管和临时四种,理解这些状态对于正确使用Hibernate至关重要。 通过阅读《Hibernate3中文文档》,开发者可以深入学习以上各方面的内容,熟练掌握...

    JPA和Hibernate的关系

    JPA规范不仅简化了数据库访问,还提供了一种标准化的方式来处理实体对象的状态管理。 #### 二、Hibernate概述 Hibernate是一个开源的ORM框架,它不仅实现了JPA规范,还提供了比JPA更丰富的功能。Hibernate的核心...

    hibernate5官方文档,HTML+PDF

    5. **对象状态**:Hibernate定义了四种对象状态:瞬时、持久化、托管和脱管。理解这些状态对于理解对象如何与数据库交互至关重要。 6. **查询语言(HQL)**:Hibernate Query Language是Hibernate的特定查询语言,...

    精通hibernate源码ch3

    4. 对象状态:Hibernate中的对象有四种状态:瞬时态、持久态、脱管态和临时态,理解这些状态有助于更好地管理对象的生命周期。 5. 第二级缓存:除了默认的一级缓存外,Chapter 3可能涉及启用和配置第二级缓存,提高...

    域模型的种状态与hibernate缓存PPT学习教案.pptx

    域模型有以下几种状态: 1. **瞬时态(Transient)**:新创建的对象处于瞬时态,例如`Customer c1=new Customer("Tom",new HashSet())`,此时对象并未与数据库关联,也不会被Hibernate管理。 2. **持久态...

    hibernate框架详细学习资料及配置

    3. Session:是Hibernate与数据库交互的接口,负责管理对象的状态和事务。 4. Query:提供对数据库的查询操作,包括HQL(Hibernate Query Language)和Criteria API。 三、Hibernate配置 配置Hibernate涉及以下几个...

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

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

    Hibernate4.1环境搭建

    - 如果使用了Hibernate的逆向工程来生成实体类和映射文件,需要注意以下几点: - 在`web.xml`中添加如下过滤器配置: ```xml <filter-name>HibernateOpenSession <filter-class>org.springframework.orm....

    Hibernate Core 3.3.2.GA Javadocs

    8. **状态转换**:Hibernate对象有三种状态:瞬时态、持久态和脱管态。理解这些状态及其转换规则对于正确使用Hibernate至关重要。 通过深入学习和理解《Hibernate Core 3.3.2.GA Javadocs》,开发者能够更好地掌握...

    hibernate面试题.doc

    Hibernate中的对象有三种状态: - **瞬时态(Transient)**:对象在内存中创建,但尚未与数据库关联。使用`session.save()`或`saveOrUpdate()`方法可以将瞬时对象转化为持久态。 - **持久态(Persistent)**:对象与...

Global site tag (gtag.js) - Google Analytics