Hibernate对象持久化的三种状态

1、三种状态:

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Student student=new Student();//瞬时态
            student.setSname("zzzz");//瞬时态
            student.setSex("男");//瞬时态
            student.setBirthday("2019-11-11");//瞬时态
            student.setClassno("201911");//瞬时态
            student.setPoint(111);//瞬时态
            student.setPhone("1873496511");//瞬时态
            student.setEmail("[email protected]");//瞬时态
            session.save(student);//持久化状态
            transaction.commit();
            session.close();//游离状态
        }

(1)游离态(没有id没有与session关联):

(2)持久化态(有id,与session有关联),在事务没有提交之前变为持久态:

执行了session.save(student);后生成了id值,但是并未执行insert语句。

(3)游离(托管)态:有id,没有与session关联:

2、持久化状态的特点:

持久化对象的任何变化都会自动同步到数据库。

原文地址:https://www.cnblogs.com/zhai1997/p/11824940.html

时间: 2024-10-04 18:56:41

Hibernate对象持久化的三种状态的相关文章

.NET进阶 — Nhibernate 持久化的三种状态

引入 在面向对象的开发中,程序的运行都是通过对象的方式对数据库进行增删改查的操作,必然在持久化过程中产生一些列的对象,比如登陆,必然会有实例化的UserEntity对象,从数据库Select出来的对象,Save到数据库的对象,如何区分这些对象以及当前会话的状态,下面看NHibernate中的对象状态的管理: Nhibernate 三态 Nhibernate在持久化对象的生命周期,将对象分为三个状态: 1.瞬时态(Transient) 也叫临时态,顾名思义,对象是临时创建的,即刚实例化的对象: U

hibernate持久化对象三种状态及其转换

持久化类类三种状态介绍1. 瞬时态:也叫做临时态或自由态,它一般指我们 new 出来的对象,它不存在 OID, 与 hibernate session 无关联,在数据库中也无记录.它使用完成后,会被 jvm 直接 回收掉,它只是用于信息携带.简单说:无 OID 与数据库中的信息无关联,不在 session 管理范围内.2. 持久态:在 hibernate session 管理范围内,它具有持久化标识 OID 它的特点,在事 务未提交前一直是持久态,当它发生改变时, hibernate 是可以检测

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

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

Hibernate 对象的三种状态

对象在第一种状态 Teacher t = new Teacher(); t.setName(“张三”); t.setAge(35); Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); 对象在第二种状态 session.save(t); session.getTransaction().commit(); 对象在第三种状态,在commit之后. 1.transient: 内存中新new

Hibernate的工作流程以及三种状态

Hibernate的工作流程: 1. 读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3. 打开Sesssion 4.创建事务Transation 5. 持久化操作 6.提交事务 7.关闭Session 8. 关闭SesstionFactory Hibernate中bean 的三种状态 Hibernate对象分为三种状态:瞬时态(new 出来的或者实例化时session无关的), 持久态(session关联)与游离态(曾经与session关联).其中持久态的对象是P

Hibernate的工作流程以及三种状态(面试题)

Hibernate的工作流程以及三种状态 转载自:http://www.cnblogs.com/fifiyong/p/6390699.html Hibernate的工作流程: 1. 读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3. 打开Sesssion 4.创建事务Transation 5. 持久化操作 6.提交事务 7.关闭Session 8. 关闭SesstionFactory Hibernate中bean 的三种状态 Hibernate对象分为三种状态:瞬

Hibernate持久化对象的三种状态

在Hibernate中,持久化对象在被操作的过程中可以分为三个时期,这三个时期是和Session的周期相关的,因为Hibernate中的操作都是基于Session完成的.Session的特定方法能使对象从一个状态转换到另一个状态. 持久化对象的生命周期有三种,瞬时状态.持久状态和分离状态.如下图: 瞬时态 不曾进行持久化,未与任何Session相关联.此状态的对象是用new关键字创建出来的,此时对象没有和数据库中记录对应. //Transient状态 Useruser = new User();

【hibernate进阶】hibernate持久化对象的三种状态

Hibernate持久化对象的三种状态:瞬时对象(Transient Objects),持久化对象(Persist Objects),离线对象(Detached Objects). 三种状态:    瞬时对象(Transient Objects):使用new 操作符初始化的对象不是立刻就持久的.它们的状态是瞬时的,也就是说他们没有任何跟数据库表相关联的行为,只要应用不在引用这些对象(不再被任何其他对象所引用),它们的状态将会丢失,并由垃圾回收机制回收. 持久化对象(Persist Objects

java:Hibernate框架(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态)

1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configurati