jpa持久化对象四种状态

自己理解,不完全正确,大致如下:

例:某实体类   Person(int id,string name,int age);   id 为主键。

新建:new Person(),  并且未给 id 赋值;

游离:new Person(),  并且给 id 赋值;或者数据库获取的Person 类实例,然后关闭了session;

持久化:从数据库获取的Person 类实例;

删除:删除持久化的对象;

上面游离状态的对象  进行 persist  会报 detach xxx 错误(也有可能是 flush 后或者事务提交后才报错 )

原文地址:https://www.cnblogs.com/mumu122GIS/p/10161035.html

时间: 2024-08-01 17:41:35

jpa持久化对象四种状态的相关文章

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

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

>hibernate的四种状态

hibernate的四种状态 1.临时状态 与数据库中没有相对应的数据,也不在session的管理之中,一般是新new出来的对象 2.持久化状态 对象在session的管理中,最后会在事务提交后,在数据库中有相对应的记录 该状态有两个特点①有OID      ②对对象的修改会同步到数据库中 3.游离状态 数据库中有相对应的记录,该对象不再session的管理中,修改此对象时,该数据库不会有变化 4.删除状态 执行了delete()方法的对象,最后被回收

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

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

hibernate对象三种状态

hibernate里对象有三种状态: 1,Transient 瞬时 :对象刚new出来,还没设id,设了其他值. 2,Persistent 持久:调用了save().saveOrUpdate(),就变成Persistent,有id 3,Detached  脱管 : 当session  close()完之后,变成Detached. 例子程序: Teacher类: 1 package com.oracle.hibernate.id; 2 3 import javax.persistence.Enti

java线程四种状态

一个线程可以有四种状态: 1.新(new), 即线程刚刚创建,而并未执行 2.可运行(runnable),意味着一旦时间分片机制有空闲的CPU周期提供给一个线程,那个线程便可立即开始运行.因此,线程可能在.也可能不在运行当中,但一旦条件许可,没有什么能阻止它的运行——它既没有“死”掉,也未被“堵塞”. 3.Dead,从自己的run()方法中返回后,一个线程便已“死”掉.亦可调用 stop()令其死掉,但会产生一个违例——属于Error的一个子类(也就是说,我们通常不捕获它).记住一个违例的“掷”

a链接的四种状态

四种状态:hover.link.active.visible a:link{color:#fff;} a链接初始化 a:hover{color:yellow;} 把鼠标放上去的状况 a:active{color:pink;} 触发时候的状态,按下去不松开的情况 a:visited{color:green;} 访问后的情况

Java多线程(4)----线程的四种状态

与人有生老病死一样,线程也同样要经历开始(等待).运行.挂起和停止四种不同的状态.这四种状态都可以通过Thread类中的方法进行控制.下面给出了Thread类中和这四种状态相关的方法. 1 // 开始线程 2 public void start( ); 3 public void run( ); 4 5 // 挂起和唤醒线程 6 public void resume( ); // 不建议使用 7 public void suspend( ); // 不建议使用 8 public static v

HTML5样式和列表、CSS链接的四种状态

一.HTML5样式 1.标签: <style>:样式定义: <link>:资源引用: 2.属性: type="text/css":引入文档类型: rel="stylesheet":外部样式表: 3.三种样式表插入方法: (1)外部样式表: 在<head></head>中写入: <link  rel="stylesheet"  type="text/css"  href=&q

Hibernate缓存机制和四种状态

临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于Session的缓存中.处于临时状态的Java对象被称为临时对象. 持久化状态(persistent):已经被持久化,加入到Session的缓存中.处于持久化状态的Java对象被称为持久化对象. 游离状态(detached):已经被持久化,但不再处于Session的缓存中.处于游离状态的Java对象被称为游离对象. 删除状态(removed):OID 不为null.从一个Session实例的缓存中删除.被删除对象和数据库