知识卡片
持久化对象的三态模型
内容
ORM管理的对象在其生命周期里会在三种状态间流转:瞬时态(transient,刚用new创建、与任 何会话都无关联,进程结束就彻底消失)、持久态(persistent,已关联到一个打开的会话,其 字段变化会被自动追踪并在合适时机同步进数据库)、脱管态(detached,曾经是持久态,但所 属会话已关闭,对象仍在内存中却不再与数据库通信)。脱管对象要恢复持久化能力,必须重新 挂接到一个新会话;这依赖对象携带的唯一ID,让框架知道该把它对应到数据库里的哪一行。发 散:这三态模型比”增删改查”这种表面操作更能揭示ORM的本质——它管理的其实是”对象与数据 库连接状态”的生命周期,而不只是数据本身。同样的三态划分在JPA的EntityManager中依然 成立,是这类框架里比具体API更长寿的核心抽象。
参考来源
《精通Hibernate》第3章《创建持久化对象》