java Hibernate 的三种状态:瞬时、持久、游离

默认分类 · 2021-10-18

Hibernate 实体类对象有三种状态:瞬时态(也叫临时态,自由态)、持久态、游离态(也叫脱管态)

三种状态的特点

瞬时态(Transient) :没有持久化标识OID,没有被纳入到 Session 对象的管理

持久态(Persistent):有OID标识,在Session 对象的管理中

游离态(Detached ) :有OID标识,脱离了Session 对象的管理

注意:

以下的session,是Hibernate工厂中生产的session,不是servlet中的。

SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();

三种状态的获取和转换

直接获取方式

获取瞬时态 new Foo()
获取持久态 session.get()
游离态不能直接获取

状态转换

瞬时--->持久 session->save()
瞬时--->游离 session->setXxx()
持久--->瞬时 session->delete()
持久--->游离 session->close()
游离--->瞬时 session->delete()
游离--->持久 session->update()

java hibernate
Theme Jasmine by Kent Liao