12.4. 持久性上下文

Jakarta Persistence 持久上下文包含由持久提供商管理的实体。持久上下文充当第一级别的事务缓存,以便与数据源交互。它管理实体实例及其生命周期。加载的实体在返回到应用之前被置于持久上下文中。实体更改也会置于持久性上下文中,以便在交易提交时保存到数据库中。

容器管理的持久性上下文的生命周期可以限定为事务(称为事务范围的持久性上下文),或者具有超过单个事务(称为扩展持久性上下文)的生命周期范围。PersistenceContextType 属性(具有 枚举 数据类型)用于为容器管理的实体管理器定义持久性上下文生命周期范围。持久上下文生命周期范围是在创建 实体管理器 实例时定义的。

12.4.1. transaction-Scoped Persistence Context

事务范围的持久性上下文与活跃的 Jakarta Transactions 事务配合。事务提交时,持久性上下文刷新到数据源;实体对象会被分离,但可能仍被应用代码引用。预期要保存到数据源的所有实体更改必须在交易期间进行。当实体 管理器调用完成后,会在事务之外读取的实体 分离。