Class AbstractReactiveEntitiesOperations<Ctx extends OperationContext,T,Exc extends Exception>
java.lang.Object
io.micronaut.data.runtime.operations.internal.ReactiveEntitiesOperations<T,Exc>
io.micronaut.data.runtime.operations.internal.AbstractReactiveEntitiesOperations<Ctx,T,Exc>
- Type Parameters:
Ctx
- The operation contextT
- The entity typeExc
- The exception
@Internal
public abstract class AbstractReactiveEntitiesOperations<Ctx extends OperationContext,T,Exc extends Exception>
extends ReactiveEntitiesOperations<T,Exc>
Abstract reactive entities operations.
- Since:
- 3.3
- Author:
- Denis Stepanov
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected final class
Internal entity data holder. -
Field Summary
Modifier and TypeFieldDescriptionprotected final ReactiveCascadeOperations<Ctx>
protected final io.micronaut.core.convert.ConversionService
protected final Ctx
protected final EntityEventListener<Object>
protected final boolean
protected final boolean
protected final RuntimePersistentEntity<T>
protected reactor.core.publisher.Mono<Long>
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractReactiveEntitiesOperations
(Ctx ctx, ReactiveCascadeOperations<Ctx> cascadeOperations, io.micronaut.core.convert.ConversionService conversionService, EntityEventListener<Object> entityEventListener, RuntimePersistentEntity<T> persistentEntity, Iterable<T> entities, boolean insert) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
cascadePost
(Relation.Cascade cascadeType) Cascade post operation.protected void
cascadePre
(Relation.Cascade cascadeType) Cascade pre operation.protected void
checkOptimisticLocking
(long expected, long received) Compare the expected modifications and the received rows count.protected abstract void
Collect auto-populated values before pre-triggers modifies them.void
delete()
Delete one operation.protected abstract void
execute()
Execute update.protected void
reactor.core.publisher.Flux<T>
reactor.core.publisher.Mono<Number>
protected boolean
Check if data not vetoed.void
persist()
Persist one operation.protected void
Trigger post-actions onEntityEventContext
.protected void
Trigger the post persist event.protected void
Trigger the post remove event.protected void
Trigger the post update event.protected boolean
Trigger pre-actions onEntityEventContext
.protected boolean
Trigger the pre persist event.protected boolean
Trigger the pre remove event.protected boolean
Trigger the pre update event.void
update()
Update one operation.protected T
updateEntityId
(io.micronaut.core.beans.BeanProperty<T, Object> identity, T entity, Object id) Update entity id.void
Veto an entity.
-
Field Details
-
ctx
-
cascadeOperations
-
insert
protected final boolean insert -
hasGeneratedId
protected final boolean hasGeneratedId -
entities
protected reactor.core.publisher.Mono<List<AbstractReactiveEntitiesOperations<Ctx extends OperationContext,T, entitiesExc extends Exception>.Data>> -
rowsUpdated
-
entityEventListener
-
persistentEntity
-
conversionService
protected final io.micronaut.core.convert.ConversionService conversionService
-
-
Constructor Details
-
AbstractReactiveEntitiesOperations
protected AbstractReactiveEntitiesOperations(Ctx ctx, ReactiveCascadeOperations<Ctx> cascadeOperations, io.micronaut.core.convert.ConversionService conversionService, EntityEventListener<Object> entityEventListener, RuntimePersistentEntity<T> persistentEntity, Iterable<T> entities, boolean insert) Default constructor.- Parameters:
ctx
- The contextcascadeOperations
- The cascade operationsconversionService
- The conversion serviceentityEventListener
- The entity event listenerpersistentEntity
- The persistent entityentities
- The entitiesinsert
- The insert
-
-
Method Details
-
cascadePre
Cascade pre operation.- Parameters:
cascadeType
- The cascade type
-
cascadePost
Cascade post operation.- Parameters:
cascadeType
- The cascade type
-
veto
Veto an entity.- Parameters:
predicate
- The veto predicate
-
triggerPre
Trigger pre-actions onEntityEventContext
.- Parameters:
fn
- The entity context function- Returns:
- true if operation was vetoed
-
triggerPost
Trigger post-actions onEntityEventContext
.- Parameters:
fn
- The entity context function
-
notVetoed
Check if data not vetoed.- Parameters:
data
- The data- Returns:
- true if data is not vetoed
-
getEntities
- Specified by:
getEntities
in classReactiveEntitiesOperations<T,
Exc extends Exception> - Returns:
- The entities
-
getRowsUpdated
- Returns:
- Rows updated.
-
checkOptimisticLocking
protected void checkOptimisticLocking(long expected, long received) Compare the expected modifications and the received rows count. If not equals throwOptimisticLockException
.- Parameters:
expected
- The expected valuereceived
- THe received value
-
persist
public void persist()Persist one operation. -
delete
public void delete()Delete one operation. -
update
public void update()Update one operation. -
failed
- Throws:
DataAccessException
-
collectAutoPopulatedPreviousValues
protected abstract void collectAutoPopulatedPreviousValues()Collect auto-populated values before pre-triggers modifies them. -
execute
Execute update. -
updateEntityId
protected T updateEntityId(io.micronaut.core.beans.BeanProperty<T, Object> identity, T entity, Object id) Update entity id.- Parameters:
identity
- The identity property.entity
- The entity instanceid
- The id instance- Returns:
- The entity instance
-
triggerPrePersist
protected boolean triggerPrePersist()Trigger the pre persist event.- Returns:
- true if operation was vetoed
-
triggerPreUpdate
protected boolean triggerPreUpdate()Trigger the pre update event.- Returns:
- true if operation was vetoed
-
triggerPreRemove
protected boolean triggerPreRemove()Trigger the pre remove event.- Returns:
- true if operation was vetoed
-
triggerPostUpdate
protected void triggerPostUpdate()Trigger the post update event. -
triggerPostRemove
protected void triggerPostRemove()Trigger the post remove event. -
triggerPostPersist
protected void triggerPostPersist()Trigger the post persist event.
-