Hibernate对象状态分类的详细说明

2025年05月06日 21:06
有3个网友回答
网友(1):

1.临时状态(transient):刚刚用new语句建立,还没有被持久化,不处于session的缓存中。处于临时状态的java对象称之为临时对象。

2.持久化对象(persistent):已经被持久化,加入到session的缓存中。处于持久化状态的java对象被称之为持久化对象,会被session自动同步

3.托管(游离)状态(detached):持久化对象关联的session关闭后处于托管状态,可以继续修改然后关联到新的session上,再次成为持久化对象,托管期间的修改会被持久化到DB。这使长时间操作成为可能

网友(2):

Hibernate对象有三种状态:

瞬时状态(Transient):对象新创建的时候,失去引用时被JVM回收; 可通过save方法进入持久状态

持久状态(Persistent):通过save方法之后进入持久状态,在数据库与缓存中有记录; session关闭进入脱管状态

脱管状态(Detached):在数据库中有记录,缓存中没有; 可通过load,get,或查询再次进入持久状态;或者当本session关闭后,重新打开一session,并调用update方法使对象进入持久状态。

网友(3):

Hibernate 对象状态有三种

1、暂态(Transient):po(持久对象)在数据库中没有记录;与Session无关,需要手工同步
2、持久态(Persistent):po在数据库中有记录,与Session有关,Session自动同步;
3、游离态(Detacher):poz在数据库中有记录,与Session无关,手动同步;