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

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独立开发包

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

    hibernate源码

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

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

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

    Hibernate电子书(全)

    Hibernate跟踪Java对象的状态变化,将对象分为瞬态、持久和脱管三种状态。同时,Hibernate还提供了对象的唯一标识机制,使得每个持久化对象都有一个唯一的标识符,这对于对象的检索和更新非常重要。 #### 实作...

    hibernate软件包

    "hibernate-entitymanager-3.4.0.GA"是Hibernate的一个特定版本,它包含了Hibernate实体管理器(Hibernate EntityManager)的3.4.0.GA版。实体管理器是JPA(Java Persistence API)规范的一部分,它在Hibernate的...

    Hibernate3中文文档

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

    优化Hibernate性能的几点建议

    使用`default-cascade="all"`属性可以帮助自动同步关联实体的状态。 #### 八、正确处理数据库事务 在进行数据库操作时,确保所有的数据库操作都在事务的范围内执行。这样可以确保数据的一致性和完整性。另外,合理...

    Hibernate\hibernate3.2官方中文参考手册PDF

    9. **实体生命周期**:Hibernate定义了几个关键的实体状态,如瞬时态、持久态、脱管态和临时态,理解这些状态对于理解对象的管理至关重要。 10. **实体的级联操作**:级联操作允许在一个操作中处理关联的对象,例如...

    Hibernate4的一些总结

    9. **实体状态与生命周期**:阐述Hibernate4中实体的四种状态(瞬时态、持久态、托管态和游离态)及其转换。 10. **性能优化**:提供一些优化Hibernate4性能的建议,如批处理、预加载、二级缓存的合理使用等。 ...

    hibernate-core 核心jar包

    4. **对象状态**:Hibernate将对象分为瞬时(Transient)、持久化(Persistent)、游离(Detached)三种状态。理解这些状态对于有效使用Hibernate至关重要,例如,当对象由Session管理时,其状态变化会影响到数据库...

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

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

    Hibernate框架

    7. **第一级缓存与第二级缓存**:Hibernate的第一级缓存是每个会话的私有缓存,存储了会话中所有实体的最新状态。第二级缓存则是一个可选特性,允许多个会话共享数据,提高了性能,但需要谨慎使用以避免并发问题。 ...

    Hibernate Developer Guide

    文档中提到了几种连接池的实现,比如c3p0和Proxool连接池。除了这些,还讨论了通过应用程序服务器使用JNDI获取连接和其他连接特定配置的相关内容。 ### 方言配置 Hibernate需要知道如何与所使用的数据库方言对话,...

    hibernate应用开发完全手册(源码)

    8. **实体生命周期**:Hibernate定义了实体的几种状态(瞬时、持久、脱管)以及它们之间的转换,帮助开发者更好地理解对象在Hibernate中的生存状态。 9. **实体关系映射**:包括一对一、一对多、多对一、多对多等...

    Hibernate5中文用户使用手册

    Hibernate5中文用户使用手册涉及了Hibernate框架的核心使用方法和高级特性,覆盖了从基础概念到高级特性的全方位内容,本手册的结构和内容包含以下几个方面: Hibernate概述:Hibernate是一个纯Java的关系型持久层...

    hibernate_reference使用指南全

    Hibernate 支持多种实例状态,包括持久化状态、瞬态状态和分离状态等,每种状态都有其特定的行为和用途。 - **2.3 JMX 集成** 介绍如何利用 Java 管理扩展 (JMX) 来监控和管理 Hibernate 应用程序的运行时行为。...

    Hibernate方法的实现

    在使用Hibernate前,我们需要配置Hibernate的环境,这通常涉及到以下几个步骤: - 引入Hibernate的jar包。 - 创建hibernate.cfg.xml配置文件,设置数据库连接信息(如URL、用户名、密码等)以及持久化类信息。 -...

    hibernate3.2 jar包

    在Hibernate 3.2中,主要包含以下几个关键组件: 1. **Configuration**:这是配置对象,用于读取Hibernate的配置文件(通常是hibernate.cfg.xml),并建立SessionFactory。配置文件中包含了数据库连接信息、实体类...

Global site tag (gtag.js) - Google Analytics