12.4. 持久性上下文


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

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

12.4.1. transaction-Scoped Persistence Context

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

12.4.2. 扩展持久性上下文

扩展的持久性上下文跨越多个事务,允许数据修改排队而无需活跃的 Jakarta Transactions 事务。容器管理的扩展持久性上下文只能注入有状态会话 Bean 中。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.