返回顶部
首页 > 资讯 > 精选 >浅谈hibernate中对象的3种状态_瞬时态、持久态、脱管态
  • 196
分享到

浅谈hibernate中对象的3种状态_瞬时态、持久态、脱管态

hibernate对象状态 2023-05-31 07:05:04 196人浏览 薄情痞子
摘要

Hibernate的对象有3种状态,分别为:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Val

Hibernate的对象有3种状态,分别为:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。

• 瞬时态

由new命令开辟内存空间的java对象,

eg. Person person = new Person("amiGo", "女");

如果没有变量对该对象进行引用,它将被java虚拟机回收。

瞬时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系,在Hibernate中,可通过session的save()或saveOrUpdate()方法将瞬时对象与数据库相关联,并将数据对应的插入数据库中,此时该瞬时对象转变成持久化对象。

• 持久态

处于该状态的对象在数据库中具有对应的记录,并拥有一个持久化标识。如果是用hibernate的delete()方法,对应的持久对象就变成瞬时对象,因数据库中的对应数据已被删除,该对象不再与数据库的记录关联。

当一个session执行close()或clear()、evict()之后,持久对象变成脱管对象,此时持久对象会变成脱管对象,此时该对象虽然具有数据库识别值,但它已不在HIbernate持久层的管理之下。

持久对象具有如下特点:

和session实例关联;

在数据库中有与之关联的记录。

•  脱管态

当与某持久对象关联的session被关闭后,该持久对象转变为脱管对象。当脱管对象被重新关联到session上时,并再次转变成持久对象。

脱管对象拥有数据库的识别值,可通过update()、saveOrUpdate()等方法,转变成持久对象。

脱管对象具有如下特点:

本质上与瞬时对象相同,在没有任何变量引用它时,JVM会在适当的时候将它回收;

比瞬时对象多了一个数据库记录标识值。

以上这篇浅谈hibernate中对象的3种状态_瞬时态、持久态、脱管态就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 浅谈hibernate中对象的3种状态_瞬时态、持久态、脱管态

本文链接: https://lsjlt.com/news/224159.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅谈hibernate中对象的3种状态_瞬时态、持久态、脱管态
    Hibernate的对象有3种状态,分别为:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Val...
    99+
    2023-05-31
    hibernate 对象 状态
  • 持久化对象在Hibernate三种状态是什么
    这篇文章主要介绍“持久化对象在Hibernate三种状态是什么”,在日常操作中,相信很多人在持久化对象在Hibernate三种状态是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”持久化对象在Hiberna...
    99+
    2023-06-17
  • Hibernate持久化对象的状态有哪些
    本篇文章给大家分享的是有关Hibernate持久化对象的状态有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Hibernate中的对象有3中状态,瞬时对象(Transien...
    99+
    2023-05-31
    hibernate 持久化classloader 对象
  • Hibernate中临时、持久、游离数据状态的特点
    本篇文章给大家分享的是有关Hibernate中临时、持久、游离数据状态的特点,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.临时态(瞬时态)不存在于session中,也不存在...
    99+
    2023-05-31
    hibernate te
  • 怎么在Java中实现实体对象的三种状态
    怎么在Java中实现实体对象的三种状态?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. ...
    99+
    2023-05-30
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作