当前位置: 首页 > news >正文

Hibernate的三种状态

1.瞬时状态(Transient)

   通过new创建对象后,对象并没有立刻持久化,他并未对数据库中的数据有任何的关联,此时java对象的状态为瞬时状态,Session对于瞬时状态的java对象是一无所知的,当对象不再被其他对象引用时,它的所有数据也就丢失了,对象将会被java虚拟机按照垃圾回收机制处理。

   2.持久状态(Persistent) 

  当对象与Session管理时,他就处于持久状态。处于持久状态的对象拥有数据库表示(数据库中的主键值)。

   3.游离状态(Detached)   

  处于持久状态的对象,脱离与其关联的Sessionn的管理后,对象就处于游离状态。

三种对象见的转换

使用new关键字构建的对象,该对象的状态就是瞬时状态

1.瞬时状态转为持久状态

  使用session对象的save()或者seavOrUpdate()方法保存对象后,该对象的状态由瞬时转换为持久状态。

  使用Session对象的get()或load()方法获取对象,该对象的状态是持久状态

2.持久状态转为瞬时状态

  执行Session对象的delete()方法后,对象由原来的持久状态变为瞬时状态,因为此时刻对象没有与任何的数据库数据关联。

3.持久状态转为游

  执行了Session对象的evict(),clear(),close()方法,对象由原来的持久状态转为游离状态;

4.游离状态转为持久状态

  重新获取Session对象,执行Session对象的update()或saveOrUpdate()方法,对象游离状态转为持久状态,该对象再次与session关联,

5.游离状态转为瞬时状态

  执行Session()对象的delete()方法时,对象由游离状态转为瞬时状态.

  处于瞬时状态或游离状态的对象不再被其他对象引用时,会被java虚拟机按照垃圾回收机制处理.

http://www.lryc.cn/news/242018.html

相关文章:

  • React 中 useContext 的用法与性能问题详解
  • 流程图是什么,用什么软件做?
  • Linux 家目录和根目录
  • js前端跨屏效果
  • 配置华为云镜像加速器
  • Redis的四种模式:单机、主从、哨兵、集群
  • 【开源】基于Vue.js的民宿预定管理系统
  • 网络安全深入学习第九课——本机信息收集
  • 深入理解C语言指针基础概念:定义、内存地址与声明初始化
  • Django DRF版本号的处理
  • [工业自动化-25]:IDEC和泉RU2S-24D/RU4S-24D继电器的使用说明和接线方式
  • 如何通过短视频提高转化率?
  • 微软离Altman越近,离OpenAI就越远!
  • minio集群部署(k8s内)
  • 【C语言】函数(四):函数递归与迭代,二者有什么区别
  • [原创](免改BIOS)使用Clover升级旧电脑-(高阶玩法)让固态硬盘内置Win11 PE启动系统
  • React项目中发生空白但不报错的原因分析和解决?
  • redis运维(十七)事务
  • Vue框架学习笔记——Vue实例中el和data的两种写法
  • libbz2 for Mac OS makefile
  • 测试工具JMeter的使用
  • C++编程——输入
  • opencv-直方图
  • el-table表格排序(需要后端判别),el-table导出功能(向后端发送请求)
  • 【MATLAB】全网入门快、免费获取、持续更新的科研绘图教程系列2
  • git与ssh多账户共存
  • BLE协议栈入门学习
  • 【反射】简述反射的构造方法,成员变量成员方法
  • acwing算法基础之数学知识--求卡特兰数
  • 《洛谷深入浅出基础篇》P4017最大食物链————拓扑排序