`
jacobcookie
  • 浏览: 94810 次
社区版块
存档分类
最新评论

判断hibernate中对象的状态

 
阅读更多
/**
	 * 从两个方面判断对象的状态
	 * 1、对象是否处于session的管理之内
	 * 2、对象是否已经保存到数据库中
	 * 
	 * 瞬时态(transient):不处于session的管理之内,对象没有被保存到数据库中
	 * 持久态(persistent):处于session的管理之内,对象被保存到数据库中了
	 * 脱管/游离(detached):不处于session的管理之内,但在数据库中已经有该对象的记录
	 * 
	 * 当你打开session并执行save()操作后,对象由瞬时态变为持久态,
	 * 当你执行commit()、close()方法后对象由瞬时态变为游离态
	 */

 

分享到:
评论

相关推荐

    Hibernate中对象的三种状态

    Session提供了事务管理和缓存功能,确保了对象状态的正确管理。例如,一级缓存(First Level Cache)自动管理持久态对象,而二级缓存(Second Level Cache)则可跨Session共享数据,提高性能。 6. HQL与 Criteria ...

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

    - **saveOrUpdate()**: 自动判断对象状态,如果对象是瞬时的,则调用 `save()`,如果是脱管的,则调用 `update()`,避免了可能出现的重复记录问题。 - **merge()**: 将脱管对象的状态合并到当前的持久化上下文中,...

    Hibernate中po对象的三种状态分析[借鉴].pdf

    - **saveOrUpdate()**:根据对象的标识判断是插入新记录还是更新已有记录,适用于对象状态不确定的情况。 5. **persist()与save()的区别** - **persist()**:用于持久化瞬态对象,但不立即生成主键,适合延迟加载...

    hibernate的各种保存方式的区别

    在深入了解Hibernate中各种保存方式之前,我们需要先了解对象在Hibernate中的几种状态。对于Hibernate而言,对象的状态主要包括以下三种: 1. **瞬态(Transient)**:也称为自由态。这种状态下的对象尚未与...

    Hibernate电子书(全)

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

    hibernate的生命周期

    若再次打开Session并调用merge(),Hibernate会根据对象状态判断是否需要执行更新操作。 **二、生命周期方法** 1. **save()**:将对象标记为持久态,但不立即执行SQL插入操作,通常在事务提交时才执行。 2. **...

    hibernate_flush 深入了解

    1. **对象状态检查**:Hibernate会检查Session中的所有对象,判断它们是否需要被更新、插入或删除。这包括对持久化对象的脏检查,即比较对象的当前状态和上次持久化时的状态。 2. **生成SQL语句**:根据对象的状态...

    hibernate 的saveOrUpdate

    1. **对象的状态管理**:在Hibernate中,对象有四种状态:瞬时(Transient)、持久化(Persistent)、脱管(Detached)和临时(Transient)。`saveOrUpdate`可以帮助对象从瞬时状态转变为持久化状态,或者将脱管对象...

    Hibernate方法总结

    3. `saveOrUpdate`: 自动判断对象状态,如果对象是新创建的,就调用`save`,如果是已存在的,就调用`update`。这是最常用的方法,避免了在保存或更新前检查对象是否已存在的步骤。 4. `delete`: 删除指定的对象,...

    hibernate3.2生命周期

    Hibernate对象状态 对象在Hibernate中有以下几种状态: - **瞬时态(Transient)**:对象刚刚被创建,还没有与Session关联,没有持久化标识符(ID)。如果对象在这个状态下被垃圾回收,那么所有关于该对象的数据...

    hibernate 开发基础

    综合来看,Hibernate的开发涉及了多个方面的知识,包括对象状态的管理、Session缓存的作用机制、以及如何使用Hibernate提供的API进行数据库操作。掌握这些知识点能够有效地使用Hibernate框架进行高效、稳定的Java...

    hibernate常见异常

    * 使用 session.refresh(object),当 object 不是数据库中已有数据的对象的时候,不能使用 session.refresh(object) 因为该方法是从 Hibernate 的 session 中去重新取 object,如果 session 中没有这个对象,则会...

    jsp+servlet++hibernate+购物车系统

    3. Hibernate:Hibernate是一个对象关系映射(ORM)框架,它提供了在Java应用中与数据库交互的抽象层。在购物车系统中,Hibernate用于处理商品、订单、购物车等实体的数据库操作。通过配置映射文件,Hibernate可以...

    hibernate 个人学习笔记及代码

    2. 更新:调用Session的update()方法,Hibernate会根据对象的状态自动判断是更新还是插入。 3. 删除:使用Session的delete()方法删除对象,对应的数据库记录也会被移除。 4. 查询:通过Session的get()或load()方法...

    Hibernate 映射关系! 基础封装

    `save()`、`update()`、`saveOrUpdate()`、`persist()`和`merge()`是Hibernate中用于处理对象状态变化的主要方法。 - **save()**:保存一个新的瞬态对象到数据库,生成并返回主键标识符。如果对象已存在,可能会...

    hibernate 学习笔记3

    描述:本篇笔记深入探讨了Hibernate框架中一对多关系的映射及持久化对象状态管理,结合个人理解与实践经验,旨在为读者提供一份详实的学习资料。 ### 一、一对多关系映射详解 在Hibernate框架中,一对多关系是一种...

    Hibernate的学习笔记

    2. **对象状态转换**: - Transient(自由状态):对象尚未与Session关联。 - Persistent(持久化状态):对象已与Session关联,其变化会被跟踪并持久化。 - Detached(游离状态):对象曾是持久化的,但与...

    hibernate各种常用方法的详解

    #### 二、Hibernate 对象状态管理 在 Hibernate 中,对象的状态主要包括以下三种: 1. **瞬时态(Transient)**:指新创建的对象尚未与任何 Session 关联,也未被持久化到数据库中。 2. **持久态(Persistent)**...

    Struts+Hibernate实现分页

    5. 更新或删除操作同样需要在Action中处理,并确保分页状态不会受到影响。 这样的分页实现保证了数据的高效加载和用户的流畅体验,同时充分利用了Struts的控制层和Hibernate的数据访问层能力,降低了开发复杂度。在...

Global site tag (gtag.js) - Google Analytics