Hibernate——持久化对象(三)

在学习Hibernate时看到这样一张状态图,感觉还挺漂亮,分享一下:


 

这是一张描述一个对象的生命周期的状态转化图。一个对象有三种状态:TransientPersistentDetached

 

  • Transient

使用new关键字初始化的对象,没有和任何数据库表相关联的行为。

  • Persistent

Session持久化管理器统一管理,持久化实例是在事务中进行操作的,它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQLINSERTUPDATEDELETE语句把内存中的状态同步到数据库中。

  • Detached

Session关闭之后,持久化对象变为离线对象。无法再与数据库保持同步。不再受持久化容器Session的管理

 

 三个状态在数据库、Session容器的存在状态如下表格:

Hibernate——持久化对象(三)_第1张图片

 

  • 疑问:

提出三个状态有何意图?使用了这三个状态是对象有发生了怎样的改变?具体有什么的作用? 在网上浏览了一圈 ,没有找到很好的解释。

 

  • 猜测:

将对象在不同的时刻变为不同的状态,利于管理,提高性能,增加灵活性。

 

总结:在项目中现在还没有怎么接触过这三个状态,所以现在对这三个状态的理解还只能停留在字面上。

 

 

你可能感兴趣的:(Hibernate——持久化对象(三))