Java
UnitOfWork
在单个原子单元内协调事务资源。
- Type class
- Package:
com.euonia.uow
- Author: damon(zhaorong@outlook.com)Fields¶
No public fields.
Methods¶
UnitOfWork¶
使用默认(非事务性)选项创建工作单元。
UnitOfWork¶
使用给定的默认选项创建工作单元。
- Parameters:
defaultOptions (UnitOfWorkOptions): 回退选项;如果为 null,则使用非事务性默认值getId¶
- Returns: String - 此工作单元的唯一标识符
getItems¶
返回一个可变的映射,用于存储此工作单元范围内的任意数据。
- Returns: Map\<String, Object> - 数据项映射
getContexts¶
返回已注册的事务上下文的不可修改视图。
- Returns: Map\<String, UnitOfWorkContext> - 上下文映射
getOptions¶
- Returns: UnitOfWorkOptions - 活跃的选项,初始化前为 null
getOuter¶
- Returns: UnitOfWork - 外部(父级)工作单元,如果当前已是最外层则返回 null
isReserved¶
- Returns: boolean - 此工作单元是否已被预留
getReservationName¶
- Returns: String - 预留名称,如果未被预留则返回 null
isDisposed¶
- Returns: boolean - close() 是否已被调用
isCompleted¶
- Returns: boolean - completeAsync() 是否已成功完成
getFailure¶
返回导致此工作单元失败的异常,如果成功则返回 null。
- Returns: Throwable - 失败异常,可能为 null
addCompletedListener¶
注册一个监听器,当工作单元成功完成时接收通知。
- Parameters:
listener (Consumer<UnitOfWorkEvent>): 回调函数addFailedListener¶
注册一个监听器,当工作单元失败时接收通知。
- Parameters:
listener (Consumer<UnitOfWorkFailure>): 回调函数addDisposedListener¶
注册一个监听器,当工作单元被释放时接收通知。
- Parameters:
listener (Consumer<UnitOfWorkEvent>): 回调函数onCompleted¶
注册一个异步处理器,在完成事件触发之前运行。处理器按顺序链式执行。
- Parameters:
handler (Supplier<CompletionStage<Void>>): 异步处理器initialize¶
使用给定的选项初始化工作单元(由管理器调用一次)。将提供的选项与此工作单元的默认选项合并。
- Parameters:
options (UnitOfWorkOptions): 此工作单元的选项
- Throws: IllegalArgumentException — 如果 options 为 null, IllegalStateException — 如果已经初始化reserve¶
为此工作单元预留一个特定目的。
- Parameters:
reservationName (String): 描述性名称saveChangesAsync¶
保存所有已注册上下文中挂起的变更,但不提交。
- Returns: CompletionStage\<Void> - 当所有上下文保存完成后完成的阶段
rollbackAsync¶
回滚所有已注册的上下文。
- Returns: CompletionStage\<Void> - 当所有上下文回滚完成后完成的阶段
completeAsync¶
完成工作单元:保存变更、触发完成处理器、然后通知监听器。只能调用一次。
- Returns: CompletionStage\<Void> - 当工作单元完成后完成的阶段
- Throws:
IllegalStateException — 如果已完成请求已发出setOuter¶
设置外部(父级)工作单元以支持嵌套。
- Parameters:
outer (UnitOfWork): 外部工作单元findContext¶
按键查找已注册的上下文。
- Parameters:
key (String): 上下文键
- Returns: UnitOfWorkContext - 上下文,如果未找到则返回 nulladdContext¶
在给定键下注册上下文。如果该键下已有上下文,则操作失败。
- Parameters:
key (String): 上下文键, context (UnitOfWorkContext): 要注册的上下文
- Throws: IllegalStateException — 如果该键下已有上下文getOrAddContext¶
获取已有上下文,或使用提供的工厂创建新的上下文。
- Parameters:
key (String): 上下文键, factory (Supplier<UnitOfWorkContext>): 当上下文不存在时用于创建上下文的工厂
- Returns: UnitOfWorkContext - 已有或新创建的上下文close¶
释放工作单元。关闭所有上下文,如果单元未成功完成则触发失败监听器,并触发释放监听器。幂等 —— 后续调用为空操作。
notifyCompleted¶
使用给定事件通知所有已注册的完成监听器。
- Parameters:
event (UnitOfWorkEvent): 完成事件notifyFailed¶
使用给定事件通知所有已注册的失败监听器。
- Parameters:
event (UnitOfWorkFailure): 失败事件notifyDisposed¶
使用给定事件通知所有已注册的释放监听器。
- Parameters:
event (UnitOfWorkEvent): 释放事件