您现在的位置是:首页 >

状态图描述一个对象在不同 Hibernate对象的三种状态是什么?

火烧 2021-11-03 12:02:04 1026
Hi er ate对象的三种状态是什么? 瞬时态 Tra ie t 持久态 Per i te t 脱管态 Detached 处于持久态的对象也称为PO Per i te ce O ject 瞬时对象和

Hibernate对象的三种状态是什么?  

瞬时态(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实例关联

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

状态图描述一个对象在不同 Hibernate对象的三种状态是什么?

脱管态

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

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

脱管对象具有如下特点

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

lishixinzhi/Article/program/Java/ky/201404/30503  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码