博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博为峰Java技术文章 ——JavaEE Hibernate实例状态
阅读量:6294 次
发布时间:2019-06-22

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

hot3.png

Hibernate的实例状态分为3种,分别为瞬时状态(Transient)、持久化状态(Persistent)和脱管状态(Detached)。

瞬时状态(Transient)

实体对象是通过中的new关键字开辟内存空间创建的Java对象,但是它并没有纳入Hibernate Session的管理中,如果没有变量对它引用,它将被Java垃圾回收器回收。瞬时状态的对象在内存中是孤立存在的,它与数据库中的数据无任何关联,仅是一个信息携带的载体。

假如一个瞬时状态对象被持久化状态对象引用,它也会自动变为持久化状态对象。

持久化状态(Persistent)

持久化状态对象存在与数据库中的数据关联,它总是与会话状态(Session)和事务(Transaction)关联在一起。当持久化状态对象发生改动时并不会立即执行数据库操作,只有当事务结束时,才会更新数据库,以便保证的持久化对象和数据库操作的同步性。当持久化状态对象变为脱管状态对象时,它将不在Hibernate持久层的管理范围之内。

脱管状态(Detached)

当持久化状态的对象的Session关闭之后,这个对象就从持久化状态的对象变为脱管状态的对象。脱管状态的对象仍然存在与数据库中的数据关联,只是它并不在Hibernate的Session管理范围之内。如果将脱管状态的对象重新关联某个新的Session上,它将变回持久化状态对象。

转载于:https://my.oschina.net/u/2971691/blog/813160

你可能感兴趣的文章
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>