【hibernate框架】对象的三种状态Transient-Persistent-Detached

三种状态分别是
Transient(游离状态),Persistent(持久化状态),Detached(脱管状态)。
Teacher t=new Teacher();
t.setName("t12");//游离状态
t.setTitle("中级");//游离状态
t.setBrithday(new Date());//游离状态
t.setZhicheng(ZhiCheng.A);//游离状态

SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();
Session session=sessionFactory.getCurrentSession();

session.beginTransaction();
session.save(t);//持久化状态
session.getTransaction().commit();

System.out.ptintln(t.getId);//脱管状态

三种状态的区分关键在于:
a)有没有ID(没有ID一定是Transient状态)
b)ID在数据库中有没有
c)在内存中有没有(session缓存)

Transient(游离状态):内存中一个对象,没ID,缓存里没有,数据库中也没有。
Persistent(持久化状态):内存中有,缓存中有,数据库中有(ID)。

Detached(脱管状态):内存有,缓存没有,数据库有,ID。

什么是缓存?
缓存可以提高访问效率,原来的东西放在硬盘上,用东西每次都从硬盘去取,效率很低。这时候可以在内存中保留一份,要用的时候去内存里去取,所以缓存就是内存中的一块区域,里面放着一系列的我们想要提高读取效率的对象或者引用。

转载请注明出处:http://blog.csdn.net/acmman/

时间: 2024-09-20 01:11:44

【hibernate框架】对象的三种状态Transient-Persistent-Detached的相关文章

【SSH系列】-- Hibernate持久化对象的三种状态

       在上一篇博文中,小编主要简单的介绍了[SSH系列]--hibernate基本原理&&入门demo,今天小编来继续介绍hibernate的相关知识, 大家知道,Java对象的生命周期,是从通过new语句创建开始,到不再被任何引用变量引用结束,结束后它占用的内存将被JVM垃圾回收机制收回.在hibernate中持久化类的对象可以划分为三种状态,分别是瞬态,持久态,脱管态.       一.瞬态(Transient),也叫临时态.处于这种状态的对象具备的特征如下:       a.

【HIBERNATE框架开发之五】HIBERNATE对象的三种状态&&SESSION的常用方法

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/814.html  1. Hibernate对象的三种状态:(图解如下:)   如图所示,Hibernate对象有三种状态,1.Transient  2.Persistent 3.Detached; 三种状态的区别如下: 1. 当对象处于Transient时,只在内存中有一个对象,没ID,而且在缓存和数据库中没有: 2.

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

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

hibernate持久化对象的三个状态

              Hibernate中的对象有3种状态,瞬时对象(TransientObjects).持久化对象(PersistentObjects)和离线对象(DetachedObjects也叫做脱管对象).这三个状态的主要区别在两方面:1.session;2.数据库                          下面说一下不同状态的特征:            1.Transient (瞬态)              a) 不在Session的缓存中,不与任何的Session

hibernate映射对象三种状态的分析

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

一个io端口如何控控制电机的三种状态(正向转动,停止,反向转动)

问题描述 一个io端口如何控控制电机的三种状态(正向转动,停止,反向转动) 2C 一个io端口如何控控制电机的三种状态(正向转动,停止,反向转动)? 解决方案 需要加测速装置吧,I/O口输出PWM信号控制电机转动的速度,用PID算法进行实时控制.

checkbox三种状态

JS操作checkbox http://honeyao.iteye.com/blog/238424 翻页后保持checkbox选中状态的实现方法:在界面中,使用纯js完成.把选中的checkbox中的id,其中包括模块id,操作id,拼接成一个字符串,然后把字符串传递提交 Java代码   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

操作系统-关于进程间的三种状态的转移 能不能结合具体的程序实例说明一下

问题描述 关于进程间的三种状态的转移 能不能结合具体的程序实例说明一下 running stateready statewaiting state这三种不同的状态之间的相互转换,能不能结合具体的程序实例说明一下 比如编译器等等 解决方案 运行.阻塞.就绪 是进程的3种基本状态,有些划分成更细的则分成4个状态(运行.就绪.睡眠.阻塞)就以楼主分的这3种基本状态来解释:运行态:进程正在执行时的状态阻塞态:进程由于需要进行的IO操作,不得不等待其他进程IO或者某个IO事件完成,此时进入阻塞等待状态就绪

style-.net framework 4.0中WPF的checkbox控件的三种状态样式变更

问题描述 .net framework 4.0中WPF的checkbox控件的三种状态样式变更 当前使用.Net Framework 4.0 WPF开发一个界面,需要使用CheckBox的控件的isThreeState= true ,设置为三种状态,分别是未点击时白框,单击时显示对勾,再单击时显示中间一个小蓝框.分别对应checked值为false, true和 null. 我需要的是,如何装饰checked值为null时,其显示效果由蓝色框更换为一个红色叉的效果. 谢谢.