Hibernate中对象的三种状态,以及三种状态间的转化方法

在Hibernate中有三种状态,对它的深入理解,才能更好的理解hibernate的运行机理,刚开始不太注意这些概念,后来被别人问到了,说是面试题,才发现它是重要的。对于需要持久化的JAVA对象,在它的生命周期中有三种状态,而且互相转化。

Hibernate三种状态之一:临时状态(Transient):也叫瞬时状态,在一个对象刚被创建的时候,比如People people = new People(),它没有持久化,并没有处于Session的缓存中,这种状态的对象叫就是临时对象;

Hibernate三种状态之二:持久化状态(Persistent):已经执行了session的save()方法,已经持久化,加入到了Session缓存中,并且在数据库中具有对应的记录,并拥有一个持久化标识。处于此状态的对象叫持久对象。

此时如果使用hibernate的delete()方法,对应的持久对象就变成上面的瞬时对象,因为数据库中的对应数据已被删除,该对象不再与数据库的记录关联。  持久对象具有如下特点:    1. 和session实例关联;   2. 在数据库中有与之关联的记录。

当一个session执行close()或clear()、evict()之后,持久对象变成下面要讲的脱管对象,此时持久对象会变成脱管对象,此时该对象虽然具有数据库识别值,但它已不在HIbernate持久层的管理之下,也就是它在session缓存中的记录已经被删除了。

Hibernate三种状态之三:游离状态(Detached):也叫脱管状态,持久化对象脱离了Session的对象。如当session关闭时,Session缓存被清空的对象。特点:已经持久化,但不在Session缓存中。处于此状态的对象叫游离对象;因关闭session而变成游离态的可以通过lock、save、update变成持久态

时间: 2025-01-02 16:21:02

Hibernate中对象的三种状态,以及三种状态间的转化方法的相关文章

关于hibernate中对象的三种状态分析

一,首先hibernate中对象的状态有三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate().get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate().lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hibernate的

hibernate中对象的三种状态分析

一,首先hibernate中对象的状态有 三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate(). get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate(). lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hiberna

Hibernate学习笔记(二) — 探索 hibernate 中对象的状态

一.hibernate中对象的状态有三种: 临时.游离和持久化,三种状态转化的方法都是通过session来调用的 什么是持久化? 通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存) 二.三种状态的相互转换 session方法 session.save():该方法可以把一个对象从临时装填转换成持久化状态 session.get():从数据库中根据主键提取出一个对象,该对象就是一个持久化状态的对象 session.update():把一

ORM进阶之Hibernate中对象的三大状态解析

ORM进阶之 ORM简单介绍 ORM进阶之Hibernate简单介绍及框架搭 ORM进阶之Hibernate的三大对象 ORM进阶之Hibernate中对象的三大状态解析 在Hibernatea中每一个对象都有三种状态,他们在这三种状态下,Hibernate会他们进行不同的处理.下边我们通过一张图来看一下这三种状态以及他们之间的互相转换! 能够看到对象可能会有这三种状态.暂时状态(transient),持久化状态(persistent).游离状态(detached).下边我们来分别来解释一下这三

(09)Hibernate中对象的状态

Hibernate中对象的状态: 临时/瞬时状态.持久化状态.游离状态. Hibernate中的对象状态 序号 状态 特点 1 临时状态 a. 直接new出来的对象; [内存] b. 不处于session的管理;[session] c. 数据库中没有对象的记录;[数据库] 2 持久化状态 a. 处于session的管理; b. 数据库中有对应的记录; 说明:当调用session的save/saveOrUpdate/get/load/list等方法的时候,对象就是持久化状态.          

hibernate中对象集合的保存

一.在java web设计中经常使用对象进行操作,在hibernate中对象集合的保存(一对多) 1需要进行如下步骤: 1) 设计数据表关系 2)引入jar包,需要注意引入数据库connector 3)写实体类 4)配置映射文件和hibernate.cfg.xml 2例子如下: 员工和部门的关系,多个员工属于一个部门,一个部门有多个员工.可以在员工表上设置一个外键解决一对多的关系. 2.1)创建表 CREATE TABLE employee( id INT PRIMARY KEY AUTO_IN

Hibernate中对象的三种状态

一  . 在hibernate中,对象有三种状态:临 时状态(Transient).持久状态(Persistent)和游离状态(Detached). 处于持久态的对象也称为 PO(PersistenceObject),临时对象和游离对象也称为VO(ValueObject). 1. 临时状态 由 new命令开辟内存空间的Java对象,例如: User user=new User(); 临 时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系. (a) 如 果没有变量对该对象进行

Hibernate中对象的3种状态:瞬时态、持久态、脱管态

Hibernate的对象有3种状态,分别为:瞬时态(Transient). 持久态(Persistent).脱管态(Detached).处于持久 态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object).1.瞬时态由new命令开辟内存空间的java对象, 比如:ThinkSoar thinkSoar = new ThinkSoar(“name”, “边哥”); 如果没有变量对该对象进行引用,它将被java虚拟机回收. 瞬 时对象在内存孤

JavaWeb_(Hibernate框架)Hibernate中对象的三种状态

对象的三种状态 瞬时状态: 实体 没有id.没有与session关联 持久化状态: 特点:持久化状态对象的任何改变都会同步到数据库中 游离态[也称作托管态]: 实体 有id,没有与session关联 Hibernate向数据库中增加用户调用addUser()方法时 //增加用户 public void addUser() { //得到配置信息 Configuration config = new Configuration().configure(); //创建sessionFactiory对象