博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate 三种状态
阅读量:4645 次
发布时间:2019-06-09

本文共 742 字,大约阅读时间需要 2 分钟。

JPA是Java Persistence API的简称,中文名Java持久层API。

因JPA是由Hibernate的创建者编写,因此和Hibernate基本相似一致。JPA由不同的服务解析,因此在weblogic,jboss会有不同,因此在做注解时尽量用JPA。

Hibernate对象的三种状态:

                transient :转瞬即逝的

                persist :   持久的

                detached: 超脱的,脱离的,游离态

这三种状态相当于对象存储的过程: 准备->执行->结束返回

transient: 在session中new 一个DO对象,向DO中插入数据,在进行save,update,delete前此对象属于临时状态,数据库没有对应的数据对应。

persist:    执行save(),persist(),saveOrUpdate()等操作后,在session未关闭前,此对象就属于持久化状态,在此时对数据的更改,

                  在session结束前都会被自动同步到库中。也可通过flush()让立即同步。

                  注意:merge()是将当前对象复制一份,让复制的那份去执行保存更新操作,自身仍处于脱离状态,因此merge做save动作时对象不会有主键ID。

                             delete()执行后对象数据还在,但是数据库数据已经不存在,因此此时的数据处于脱离状态,session关闭时并不会触发数据库同步。

detached: DO对象不受session管控,对DO对象数据的更改不会与数据库同步。session关闭后,数据处于游离的。或者clear()强制让数据处于游离。

                   merge,delete也会使对象处于游离。

 

转载于:https://www.cnblogs.com/DennyZhao/p/8487302.html

你可能感兴趣的文章
061-PHP函数定义默认参数
查看>>
Genymotion下载模拟器失败解决方案
查看>>
The Apostrophe and the Quote Function ‘和引用函数 未翻译完)
查看>>
win8开发入门——国际化(多语言支持)
查看>>
科学计算三维可视化---Mayavi入门(Mayavi库的基本元素和绘图实例)
查看>>
python学习笔记-问题
查看>>
您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项【转】...
查看>>
生理周期
查看>>
(蓝桥杯)第八届A组C/C++方格分割
查看>>
react 版的知乎日报
查看>>
使用CSS3制作漂亮的按钮
查看>>
sql server 2014登录账号
查看>>
使用OutputDebugString输出调试信息
查看>>
leetcode 之Candy(12)
查看>>
kv.go
查看>>
利用截取字符串,生成已声明的字符串中的4位随机验证码。
查看>>
Spring 事务模型
查看>>
【MM系列】SAP S/4 HANA BP创建客户/供应商的一点想法
查看>>
【HANA系列】SAP HANA XS使用JavaScript数据交互详解
查看>>
【HANA系列】SAP HANA SQL获取上周的周一
查看>>