hibernate 实体对象的生命周期

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
hibernate 实体对象的生命周期主要分为三个状态,Transient(瞬态),Persistent(持久态),Detached(游离态)。
    1.Transient(瞬态) 表示该实体对象在内存中是自由的,也就是说和数据库没有任何关系。
     //创建一个瞬态对象
     User user = new User();
     user.setName(userName);
     user.setPassword("test");
    //user仍是一个瞬态对象
 
    2.Persistent(持久态) 是指该实体对象处于Hibernate框架所管理的状态,也就是说这个实体对象与session对象的实例相关。
      处于持久太的实体对象最大的特征是对其所做的任何变更操作都将被Hibernate持久化到数据库层。
   //创建一个瞬态对象
     User user = new User();
     user.setName(userName);
     user.setPassword("test");
   //user仍是一个瞬态对象

Session session = sessionFactory.openSession();
Tansaction tx = session.beginTansaction();
//此时user仍是一个瞬态对象
session.save(user);
//此时user已变为持久态
tx.commit();

Tansaction tx2 = session.beginTansaction();
user.setPassword("pdw");
tx2.commit();
//虽然在这个事物中并没有调用session的save()方法来保存user对象,但是usr处于持久太,
//所以对user对象所做的任何修改都持久化到数据库中
//那么数据库中的密码也变成了pdw

session.close();

另一种方法直接得到持久态的对象:

Session session = sessionFactory.openSession();
Tansaction tx = session.beginTansaction();
User user = (User) session.load(User.class,"key");
//user对象已是持久太对象
tx.commit();
session.close();

3.Detached(游离态)是指处于持久态的对象,当不再与他所对应的Session对象向关联时,这个对象就变成游离态了。

  //创建一个瞬态对象
     User user = new User();
     user.setName(userName);
     user.setPassword("test");
   //user仍是一个瞬态对象
 
Session session = sessionFactory.openSession();
Tansaction tx = session.beginTansaction();
//此时user仍是一个瞬态对象
session.save(user);
//此时user已变为持久态
tx.commit();
session.close();
//user对象已经变成游离态

session close完后,对象就变成游离态。
Ad hoc网络路由协议概述4——按需路由协议(2)AODV协议 (Ad-hoc on-demand distance vector algorithm protocol) AODV协议的基本流程。 阅读详情

相关推荐

通义灵码+高德 MCP:40分钟开发出游攻略网站

本文介绍了通义灵码与高德MCP在40分钟内快速开发出游攻略网站的全流程。主要内容包括:1)LingmaIDE开发环境的使用方法,涵盖界面操作、代码编辑、调试和智能编码功能;2)通义灵码智能体与高德MCP2.0的集成步骤,通过输入旅行需求即可自动生成包含天气卡片、景点路线等元素的HTML页面;3)重点展示了如何将行程规划导入高德地图APP,实现导航、打车等出行功能。整个开发过程充分利用了通义灵码的智能编码能力和高德地图的服务接口,显著提升了旅游类应用的开发效率。

soso1968的博客 970

hibernate实体生命周期

Hibernate中的实体在它的生命周期里,一共存在下面3种状态。 瞬时状态:用new 语句创建的实体对象就属于瞬时状态,它此时一般没有id值;如果没有变量对该对象进行引用,它将被java虚拟机回收,例如: Person person =  new    Person(“furong”, “女”); 瞬时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系,他最大的特点就是

祥子的博客 488

详解modbus TCP通讯,并利用其实现欧姆龙PLC和西门子PLC的通讯

大家好,之前需要更新的MQTT通讯【2】因为硬件不足还不能发布出来,但最近在项目中涉及到西门子和欧姆龙之间的modbus TCP通讯,想到modbus TCP通讯是个非常常见并广泛使用的通讯协议,今天就结合最近做的测试给大家好好讲解一下,先提示一下,这边只给大家讲解如何实现,至于报文是什么,如何用socket来编写功能块或dll这边不会讲解,这块我会根据私信的小伙伴数量来考虑要不要出一篇如何用ST语言来编写modbus TCP功能块的博客。

dy186187的博客 1万+

Hibernate实体对象生命周期(三种状态详解)

Hibernate生命周期会经历三种不同的状态: 1.Transient(瞬态):实体对象在内存是自由存在的,即与数据库中的数据没有任何关系.换句话说就是:该实体从未与任何持久化上下文关联过,它没有持久化标识.例如: //创建一个Transient对象 Useruser=newUser(); user.setName("username"); u...

weixin_33701294的博客 230

Hibernate实体对象生命周期

实体对象生命周期Hibernate应用中是一个很关键的概念,正确的理解实体对象生命周期将对我们应用Hibernate做持久层设计起到很大的作用.而所谓的实体对象生命周期就是指实体对象由产生到被GC回收的一段过程.在这过程中我们需要理解的就是实体对象生命周期中的三种状态。 1.自由状态(Transient) 所谓的Transient状态,即实体对象在内存中自由存在,与数据库中的记录无关,

HQingmu 青木河 586

Hibernate实体对象生命周期

实体对象生命周期中主要存在三种不同的状态,它们分别是Transient(瞬态)、Persistent(持久态)、Detached(游离态)。一个实体对象实体通过不同的操作可以在这三种状态之间转换。 1、Transient(瞬态) 所谓瞬态,表示该实体对象在内存中是自由存在的,也就是与数据库中的数据没有任何关系。 下面来看一段代码: //创建一个瞬态对

Cynthia9023的专栏 1047

Hibernate 实体生命周期

Hibernate 中的实体生命周期

lymaker 280

Hibernate实体对象生命周期内的三种状态

刚开始接触Hibernate的时候,只是简单的把它当做一个API工具,直到后来看到有关VO和PO的内容时,才意识到Hibernate不仅仅是一个O/R Mapping的API工具,它还是一个容器。它可以帮你管理实体对象生命周期。      实体对象生命周期有三种状态:    1.Transient(自由状态)    此时的实体对象和数据库中的记录无关联,只是一个普通的Jav

wzwjr的专栏 3163

hibernate实体对象生命周期

实体对象生命周期Hibernate应用中是一个很关键的概念,正确的理解实体对象生命周期将对我们应用Hibernate做持久层设计起到很大的作用.而所谓的实体对象生命周期就是指实体对象由产生到被GC回收的一段过程.在这过程中我们需要理解的就是实体对象生命周期中的三种状态. 1. 自由状态(Transient) 所谓的Transient状态,即实体对象在内存中自由存在,与数据库中的记录

waj89757的专栏 969

hibernate实体domain对象生命周期

hibernate生命周期   (2011-09-09 12:54:05) 转载▼     实体对象生命周期Hibernate应用中是一个很关键的概念,正确的理解实体对象生命周期将对我们应用Hibernate做持久层设计起到很大的作用.而所谓的实体对象生命周期就是指实体对象由产生到被GC回收的一段过程.在

Mr_HHH的博客 1192

《深入浅出Hibernate》读书笔记(1)——实体对象生命周期

      最近正在研读《深入浅出Hibernate》一书,前面写的随笔有些也是读该书的笔记,只是未做归类,从这篇开始,我将把相关的内容都整理成一个系列的读书笔记。      今天这篇是有关实体对象生命周期。我刚开始接触Hibernate的时候,只是简单的把它当做一个API工具,直到后来看到有关VO和PO的内容时,才意识到Hibernate不仅仅是一个O/R Mapping的API工具,它还

derpvailzhangfan的专栏 1027

Hibernate实体对象生命周期

Hibernate实体对象有三种状态:1。Transient      暂存对象,指被创建出来但没有save()的对象的状态。2。Persistent     对象与数据库中的数据有对应关系,并且与Session实例有关联而Session实例还没关闭时,对象的状态。     如何将Session实例关闭,则对象会由Persistent状态转换成Detached状态。  

小码哥的专栏 502

Hibernate-1.实体对象生命周期

 Hibernate中,实体对象生命周期分为三种状态:Transient(瞬态)、Persistent(持久态)、Detached(游离态),下面把三种状态的概念说一下。Transient(瞬态):即普通的实体对象,没有与数据库产生任何关联,比如UserInfo userInfo = new UserInfo();这个userInfo对象就是Transient。Persistent(持久态

vinep的专栏 2675

hibernate实体对象生命周期

8.2 实体对象生命周期 8.2.1 实体对象的3种状态 (1)自由状态Transient 自由状态转持久状态session.save 结论:处于自由状态的实体对象,可以通过Session.save方法转换成持久状态。 如果一个实体对象是由hibernate加载(如通过Session.load方法获得),那么,它也处于持久状态。 (2)持久状态Persistent 持久状态的对象

zhengTornado的博客 669
上一篇: winForm实现拖动无边框窗体
下一篇: opencv数据结构CvScalar
da6679980
博客等级 码龄17年 13粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值