说明:
Hibernate是一个ORM框架。也就是底层数据表和项目中实体对应关系的一个操作框架。当使用Hibernate操作底层数据库时,每一个底层数据库中的表大都对应与一个实体。所以对实体的操作会映射到对底层数据库的操作。那么,在Hibernate对对象进行操作时,对象有三种状态。
Hibernate对象的三种状态:Hiberante实体有三种状态,实体是被session管理。
1.瞬时态:对象刚刚被创建,没有被持久化,没有处于session中。该对象在内存中是自由存在的,与底
层 数据库没有任何关联,与session没有任何关系。
2.持久状态:实体已经被持久化,加入到了session缓存中。通过对实体的操作会对底层数据库产生影
响。
3.游离(脱管)状态:过去被session管理,但是现在session已经关闭。特点:已经持久化,但不在
Session缓存中。虽然存在与数据库对应的记录,但是不能同步。
三种状态之间的转换图:
持久状态(Persistent)
持久对象总是与Session和Transaction相关联,在一个session中,对持久对象的改变不会马上对数
据库变更,而必须在Transaction种植,也就是执行commit()之后,才在数据库中真正运行sql变更,
持久对象的状态才会与数据库进行同步。在同步之前的持久对象为脏对象。
瞬时态转化为持久态:
1.通过session的save()和saveOrUpdate()把一个瞬时对象与一个数据库相关联,是一个瞬时态转化
为持久态对象。
2.使用fine(),get(),load()和iterator()待方法查询到的数据对象,将成为持久化对象。
持久态转化为托管态:
当执行close()或clear(),evict()之后,持久化对象会变为托管对象。
Session的入门常用方法
三种状态的区分关键在于:
a)有没有ID
b)id在数据库中有没有
c)Session缓存中有没有
对应三种状态:
Transient:内存中new一个对象,没有Id 缓存中没有
Persistent:内存中有 有id 缓存中有
Detached:内存中有 有id 缓存中没有
相关推荐
hibernate中session对象的状态详解
一个关于关于Hibernate对象的状态的描述。
Hibernate对象状态以及各种保存方法的区别
hibernate对象三种状态,有详细的代码介绍三种状态,易理解,有具体代码实现,有详细备注,让你轻松理解三种状态的存在形式
本人在厦门邦初培训时候 使用的快速入门精简文档 ...对象的临时状态、持久状态和游离状态 用session的update()方法使游离对象转变为持久化对象。 延迟装载 迫切左外链接 HQL检索方式 QBC检索方式 本地SQL检索方式
NULL 博文链接:https://unddone8373229.iteye.com/blog/1104797
hibernate对象三状态及OneToOne&OneToMany&ManyToMany讲解,代码示例,数据库示例!非常全面
Hibernate持久化对象的生命周期 持久化对象的状态: 瞬时对象(Transient Objects)持久化对象(Persist Objects)、离线对象(Detached ...在Hibernate应用中Java对象的状态 Session的保存、更新、删除、查询方法:
Hibernate对象的状态,本文系统地分析了其中的各种状态
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()...
站在持久化的角度。Hibernate把对象分为4中状态。 临时状态。 持久化状态。游离状态。删除状态。
本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...
Java面试题57.hibernate对象状态及其转换.mp4
Hibernate中po对象的三种状态分析[借鉴].pdf
对象-关系映射—Hibernate 培训 (中文) 目录 一、持久化层-O/R Mapping 二、Hibernate入门 三、Hibernate映射申明(Mapping declaration...四、持久化对象的状态和生命周期 五、Hibernate查询 六、Hibernate最佳实践
SSH笔记-Hibernate对象的状态转换,对象状态区分,对象状态转换方法
本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...
hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...
10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改...