#
Class: UnitOfWorkcore.UnitOfWork
#
Hierarchy- UnitOfWork
#
Constructors#
constructor+ new UnitOfWork(em
: EntityManager<IDatabaseDriver<Connection>>): UnitOfWork
#
Parameters:Name | Type |
---|---|
em | EntityManager<IDatabaseDriver<Connection>> |
Returns: UnitOfWork
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:32
#
Properties#
changeSetComputer• Private
Readonly
changeSetComputer: ChangeSetComputer
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:30
#
changeSetPersister• Private
Readonly
changeSetPersister: ChangeSetPersister
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:31
#
changeSets• Private
Readonly
changeSets: Map<AnyEntity<any>, ChangeSet<AnyEntity<any>>>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:23
#
collectionUpdates• Private
Readonly
collectionUpdates: Set<Collection<AnyEntity<any>, unknown>>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:24
#
comparator• Private
Readonly
comparator: EntityComparator
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:29
#
eventManager• Private
Readonly
eventManager: EventManager
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:28
#
extraUpdates• Private
Readonly
extraUpdates: Set<[AnyEntity<any>, string, Reference<any> | AnyEntity<any> | Collection<any, unknown>]>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:25
#
identityMap• Private
Readonly
identityMap: IdentityMap
map of references to managed entities
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:18
#
metadata• Private
Readonly
metadata: MetadataStorage
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:26
#
orphanRemoveStack• Private
Readonly
orphanRemoveStack: Set<AnyEntity<any>>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:22
#
persistStack• Private
Readonly
persistStack: Set<AnyEntity<any>>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:20
#
platform• Private
Readonly
platform: Platform
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:27
#
removeStack• Private
Readonly
removeStack: Set<AnyEntity<any>>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:21
#
working• Private
working: boolean= false
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:32
#
Methods#
cancelOrphanRemovalâ–¸ cancelOrphanRemoval(entity
: AnyEntity<any>): void
#
Parameters:Name | Type |
---|---|
entity | AnyEntity<any> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:305
#
cascadeâ–¸ Private
cascade<T>(entity
: T, type
: Cascade, visited
: WeakSet<AnyEntity<any>>, options?
: { checkRemoveStack?
: undefined | boolean }): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type | Default value |
---|---|---|
entity | T | - |
type | Cascade | - |
visited | WeakSet<AnyEntity<any>> | - |
options | { checkRemoveStack? : undefined | boolean } | ... |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:441
#
cascadeReferenceâ–¸ Private
cascadeReference<T>(entity
: T, prop
: EntityProperty<T>, type
: Cascade, visited
: WeakSet<AnyEntity<any>>, options
: { checkRemoveStack?
: undefined | boolean }): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
prop | EntityProperty<T> |
type | Cascade |
visited | WeakSet<AnyEntity<any>> |
options | { checkRemoveStack? : undefined | boolean } |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:459
#
checkOrphanRemovalâ–¸ Private
checkOrphanRemoval<T>(changeSet
: ChangeSet<T>): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
changeSet | ChangeSet<T> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:352
#
checkUniquePropsâ–¸ Private
checkUniqueProps<T>(changeSet
: ChangeSet<T>): boolean
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
changeSet | ChangeSet<T> |
Returns: boolean
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:337
#
clearâ–¸ clear(): void
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:252
#
commitâ–¸ commit(): Promise<void>
Returns: Promise<void>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:206
#
commitCreateChangeSetsâ–¸ Private
commitCreateChangeSets<T>(changeSets
: ChangeSet<T>[], ctx?
: any): Promise<void>
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
changeSets | ChangeSet<T>[] |
ctx? | any |
Returns: Promise<void>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:591
#
commitDeleteChangeSetsâ–¸ Private
commitDeleteChangeSets<T>(changeSets
: ChangeSet<T>[], ctx?
: any): Promise<void>
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
changeSets | ChangeSet<T>[] |
ctx? | any |
Returns: Promise<void>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:646
#
commitUpdateChangeSetsâ–¸ Private
commitUpdateChangeSets<T>(changeSets
: ChangeSet<T>[], ctx?
: any, batched?
: boolean): Promise<void>
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type | Default value |
---|---|---|
changeSets | ChangeSet<T>[] | - |
ctx? | any | - |
batched | boolean | true |
Returns: Promise<void>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:629
#
computeChangeSetâ–¸ computeChangeSet<T>(entity
: T): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:148
#
computeChangeSetsâ–¸ computeChangeSets(): void
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:269
#
findExtraUpdatesâ–¸ Private
findExtraUpdates<T>(changeSet
: ChangeSet<T>, props
: EntityProperty<T>[]): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
changeSet | ChangeSet<T> |
props | EntityProperty<T>[] |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:614
#
findNewEntitiesâ–¸ Private
findNewEntities<T>(entity
: T, visited?
: WeakSet<AnyEntity<any>>): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type | Default value |
---|---|---|
entity | T | - |
visited | WeakSet<AnyEntity<any>> | ... |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:309
#
fixMissingReferenceâ–¸ Private
fixMissingReference<T>(entity
: T, prop
: EntityProperty<T>): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
prop | EntityProperty<T> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:535
#
getByIdâ–¸ getById<T>(entityName
: string, id
: Primary<T> | Primary<T>[]): T
Returns entity from the identity map. For composite keys, you need to pass an array of PKs in the same order as they are defined in meta.primaryKeys
.
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entityName | string |
id | Primary<T> | Primary<T>[] |
Returns: T
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:81
#
getChangeSetGroupsâ–¸ Private
getChangeSetGroups(): object
Orders change sets so FK constrains are maintained, ensures stable order (needed for node < 11)
Returns: object
Name | Type |
---|---|
create | |
delete | |
update |
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:666
#
getChangeSetsâ–¸ getChangeSets(): ChangeSet<AnyEntity<any>>[]
Returns: ChangeSet<AnyEntity<any>>[]
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:136
#
getCollectionUpdatesâ–¸ getCollectionUpdates(): Collection<AnyEntity<any>, unknown>[]
Returns: Collection<AnyEntity<any>, unknown>[]
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:140
#
getCommitOrderâ–¸ Private
getCommitOrder(): string[]
Returns: string[]
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:682
#
getExtraUpdatesâ–¸ getExtraUpdates(): Set<[AnyEntity<any>, string, Reference<any> | AnyEntity<any> | Collection<any, unknown>]>
Returns: Set<[AnyEntity<any>, string, Reference<any> | AnyEntity<any> | Collection<any, unknown>]>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:144
#
getIdentityMapâ–¸ getIdentityMap(): IdentityMap
Returns map of all managed entities.
Returns: IdentityMap
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:101
#
getOriginalEntityDataâ–¸ getOriginalEntityData<T>(): AnyEntity<any>[]
deprecated
use uow.getOriginalEntityData(entity)
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
Returns: AnyEntity<any>[]
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:108
â–¸ getOriginalEntityData<T>(entity
: T): undefined | EntityData<T>
Returns stored snapshot of entity state that is used for change set computation.
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
Returns: undefined | EntityData<T>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:113
#
getPersistStackâ–¸ getPersistStack(): Set<AnyEntity<any>>
Returns: Set<AnyEntity<any>>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:128
#
getRemoveStackâ–¸ getRemoveStack(): Set<AnyEntity<any>>
Returns: Set<AnyEntity<any>>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:132
#
initIdentifierâ–¸ Private
initIdentifier<T>(entity
: T): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:367
#
isCollectionSelfReferencedâ–¸ Private
isCollectionSelfReferenced(collection
: Collection<AnyEntity<any>, unknown>, visited
: WeakSet<AnyEntity<any>>): boolean
#
Parameters:Name | Type |
---|---|
collection | Collection<AnyEntity<any>, unknown> |
visited | WeakSet<AnyEntity<any>> |
Returns: boolean
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:487
#
lockâ–¸ lock<T>(entity
: T, mode
: LockMode, version?
: number | Date): Promise<void>
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
mode | LockMode |
version? | number | Date |
Returns: Promise<void>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:238
#
lockOptimisticâ–¸ Private
lockOptimistic<T>(entity
: T, meta
: EntityMetadata<T>, version
: number | Date): Promise<void>
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
meta | EntityMetadata<T> |
version | number | Date |
Returns: Promise<void>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:513
#
lockPessimisticâ–¸ Private
lockPessimistic<T>(entity
: T, mode
: LockMode): Promise<void>
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
mode | LockMode |
Returns: Promise<void>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:505
#
mergeâ–¸ merge<T>(entity
: T, visited?
: WeakSet<AnyEntity<any>>): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
visited? | WeakSet<AnyEntity<any>> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:36
#
persistâ–¸ persist<T>(entity
: T, visited?
: WeakSet<AnyEntity<any>>, checkRemoveStack?
: boolean): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type | Default value |
---|---|---|
entity | T | - |
visited | WeakSet<AnyEntity<any>> | ... |
checkRemoveStack | boolean | false |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:179
#
persistToDatabaseâ–¸ Private
persistToDatabase(groups
: { create
: ; delete
: ; update
: }, tx?
: any): Promise<void>
#
Parameters:Name | Type |
---|---|
groups | { create : ; delete : ; update : } |
tx? | any |
Returns: Promise<void>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:551
#
postCommitCleanupâ–¸ Private
postCommitCleanup(): void
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:431
#
processReferenceâ–¸ Private
processReference<T>(parent
: T, prop
: EntityProperty<T>, reference
: any, visited
: WeakSet<AnyEntity<any>>): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
parent | T |
prop | EntityProperty<T> |
reference | any |
visited | WeakSet<AnyEntity<any>> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:377
#
processToManyReferenceâ–¸ Private
processToManyReference<T>(reference
: Collection<AnyEntity<any>, unknown>, visited
: WeakSet<AnyEntity<any>>, parent
: T, prop
: EntityProperty<T>): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
reference | Collection<AnyEntity<any>, unknown> |
visited | WeakSet<AnyEntity<any>> |
parent | T |
prop | EntityProperty<T> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:395
#
processToOneReferenceâ–¸ Private
processToOneReference<T>(reference
: any, visited
: WeakSet<AnyEntity<any>>): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
reference | any |
visited | WeakSet<AnyEntity<any>> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:389
#
recomputeSingleChangeSetâ–¸ recomputeSingleChangeSet<T>(entity
: T): void
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:162
#
registerManagedâ–¸ registerManaged<T>(entity
: T, data?
: EntityData<T>, refresh?
: boolean, newEntity?
: boolean): T
internal
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type |
---|---|
entity | T |
data? | EntityData<T> |
refresh? | boolean |
newEntity? | boolean |
Returns: T
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:61
#
removeâ–¸ remove(entity
: AnyEntity<any>, visited?
: WeakSet<AnyEntity<any>>): void
#
Parameters:Name | Type | Default value |
---|---|---|
entity | AnyEntity<any> | - |
visited | WeakSet<AnyEntity<any>> | ... |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:193
#
runHooksâ–¸ Private
runHooks<T>(type
: EventType, changeSet
: ChangeSet<T>, sync?
: boolean): Promise<unknown>
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type | Default value |
---|---|---|
type | EventType | - |
changeSet | ChangeSet<T> | - |
sync | boolean | false |
Returns: Promise<unknown>
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:408
#
scheduleExtraUpdateâ–¸ scheduleExtraUpdate<T>(changeSet
: ChangeSet<T>, prop
: EntityProperty<T>): void
#
Type parameters:Name |
---|
T |
#
Parameters:Name | Type |
---|---|
changeSet | ChangeSet<T> |
prop | EntityProperty<T> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:293
#
scheduleOrphanRemovalâ–¸ scheduleOrphanRemoval(entity
: AnyEntity<any>): void
#
Parameters:Name | Type |
---|---|
entity | AnyEntity<any> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:299
#
shouldCascadeâ–¸ Private
shouldCascade(prop
: EntityProperty<any>, type
: Cascade): boolean
#
Parameters:Name | Type |
---|---|
prop | EntityProperty<any> |
type | Cascade |
Returns: boolean
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:492
#
tryGetByIdâ–¸ tryGetById<T>(entityName
: string, where
: FilterQuery<T>, strict?
: boolean): null | T
#
Type parameters:Name | Type |
---|---|
T | AnyEntity<T> |
#
Parameters:Name | Type | Default value |
---|---|---|
entityName | string | - |
where | FilterQuery<T> | - |
strict | boolean | true |
Returns: null | T
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:88
#
unsetIdentityâ–¸ unsetIdentity(entity
: AnyEntity<any>): void
#
Parameters:Name | Type |
---|---|
entity | AnyEntity<any> |
Returns: void
Defined in: packages/core/src/unit-of-work/UnitOfWork.ts:257