博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate对象3种状态转变关系
阅读量:6928 次
发布时间:2019-06-27

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

hot3.png

一、瞬时态。

  • 由new关键字创建的对象,它与数据库没有任何关联。
  • 瞬时态对象一旦不再被其他对象引用,那么很快将被Java虚拟机回收。

二、持久态。

  • 对象在数据库中具有相呼应的记录,并拥有一个持久化表示。
  • 持久太对象谓语一个Session实例的缓存中,即总是与一个Session实例相关联。当Session清理缓存时,会根据持久太对象的属性变化同步更新数据库。

三、托管态。

  • 持久态对象经过close、clear或evict方法后,持久态对象将转化为托管态。此后该对象属性址发生改变,Hibernate将不太同步到数据库中。

      瞬时态与托管态的相同之处在于,如果不再被任何对象引用,都将很快被垃圾回收;不同之处在于,托管态对象有数据库记录标示,而瞬时态没有。

四、Hibernate方法介绍。

  1. save()方法:将对象由瞬时态转变为持久态。
  2. load或get方法:活的对象的状态处于持久态。
  3. find()方法:获得的list集合中的对象处于持久态。
  4. update()、saveOrUpdate()和lock()方法:可将托管态对象转变为持久态。
  5. close()方法:调用后,Session的缓存会被清空,缓存中所有持久太对象状态都将转变为托管态。处于托管状态的对象称为游离对象,当不再被引用时,将被Java虚拟机垃圾回收机制清除。
  6. evict()方法:可将Session缓存中一个置顶的持久妆太对象删除,使其转变态托管态对象。当缓存中保存了大量处于持久态的对象时,为了节省内存空间,可以调用evict()方法删除一些持久对象。

转载于:https://my.oschina.net/PresidentLi/blog/799822

你可能感兴趣的文章
js实现相册-by小雨
查看>>
jQuery 语法
查看>>
5种实现垂直居中css
查看>>
做移动端视频通话软件,大致看了下现有的开源软件(转)
查看>>
【转】C 宏
查看>>
游戏框架设计中的。绑定binding。。。命令 command 和消息message 以及MVVM
查看>>
11、final详解
查看>>
使用onclick跳转到其他页面/跳转到指定url
查看>>
前端模块化思考
查看>>
android 中文 api (71) —— BluetoothServerSocket[蓝牙]
查看>>
[Whole Web] [Node.js, PM2] Controlling runaway apps using pm2
查看>>
乾坤合一~Linux设备驱动之块设备驱动
查看>>
[家里蹲大学数学杂志]第410期定积分难题
查看>>
C++中的头文件和源文件
查看>>
Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
查看>>
java12 File类
查看>>
selenium如何随机选取省份和城市的下拉框的值
查看>>
8、代理模式(Proxy)
查看>>
centos7系统nginx下phalcon环境搭建
查看>>
C#基础总结之二循环控制-运算符
查看>>