hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)

花了一些时间理解hibernate中的java对象的几种状态,很容易就懂了,这里记录一下,分享给大家!!

在Hibernate中,对象有三种状态:临时状态、持久状态和游离状态。

下面分别来说说这些状态:

临时状态:当new一个实体对象后,这个对象处于临时状态,即这个对象只是一个保存临时数据的内存区域,如果没有变量引用这个对象,则会被jre垃圾回收机制回收。这个对象所保存的数据域数据库没有任何关系,除非通过Session的save或者saveOrUpdate把临时对象于数据库关联,并把数据插入或者更新到数据库,这个对 象才转换为持久对象。
持久状态:持久化对象的实例在数据库中有对应的记录,并拥有一个持久化表示ID。对持久化对象进行 delete操作后,数据库中对应的记录被删除,那么持久化对象与数据库记录不再存在对应关系,持久化对象变成临时状态。持久化对象被修改变更后,不会马上同步到数据库,直到数据库事务提交。在同步之前,持久化对象是脏数据。
游离状态:当Session进行了close,clear或者evict后,持久化对象拥有持久化标示符与数据库对应记录一致的值,但是因为回话已经消失,对象不在持久化管理之内,所以处理游离状态(托管状态)游离状态的对象与临时状态对象是十分相似的,只是它还含有持久化标识。

找了一些资料,我想这个图可以清楚的说明这三种状态:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蓝天

Exception in thread "main" java.lang.Error: Unresolved compilation problem

初学java,使用eclipse编译时,可能会遇到如下图所示的编译错误(Exception in thread "main" java.lang.Error:...

2450
来自专栏李智的专栏

Python在不同目录下导入模块的方法

python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的...

1091
来自专栏友弟技术工作室

命令行提高用户体验的神器

去闯 ag 比grep,ack更快的递归搜索文件内容 ag,grep,ack性能对比的链接 ag安装 ag ag简单使用 ag tig tig:字符模式下交互...

3429
来自专栏CaiRui

Python模块

简介: 模块:用一坨代码实现了某个功能的代码集合。分为三种: 自定义模块 第三方模块 内置模块 python去找模块的路径 ? 其中,第三方模块安装的位置 ? ...

2268
来自专栏大数据智能实战

module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6问题解决

最近在重新用tensorflow 1.3.*或者1.4 的时候,发现了好多问题,主要是碰到了如题目所示的问题,目前网上没有什么好的解决办法。 ? 关于这个问题,...

26110
来自专栏丑胖侠

Zookeeper客户端API之修改删除节点(十)

上篇博客《Zookeeper客户端API之读取子节点内容(九)》我们介绍了Zookeeper获得节点内容的方法使用,其中实例代码中已经用到了修改节点内容的方法。...

1985
来自专栏Python

守护线程与守护进程

一 守护进程 主进程创建守护进程   其一:守护进程会在主进程代码执行结束后就终止   其二:守护进程内无法再开启子进程,否则抛出异常:AssertionErr...

2939
来自专栏北京马哥教育

99%运维人都需要的Linux命令大全

1登陆和开关机 关机 halt poweroff init 0 重启 reboot init 6 shutdown shutdown -r 重启 shutodw...

4309
来自专栏Kubernetes

docker volume源码分析

这是在docker v1.10.3版本的使用过程中,使用convoy 作为volume driver,在一次docker volume remove失败时,使我...

4186
来自专栏python3

python3--中的进程操作--multiprocess模块

运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现...

1021

扫码关注云+社区

领取腾讯云代金券