Class AbstractReactiveEntityOperations<Ctx extends OperationContext,T,Exc extends Exception>
java.lang.Object
io.micronaut.data.runtime.operations.internal.EntityOperations<T,Exc>
io.micronaut.data.runtime.operations.internal.ReactiveEntityOperations<T,Exc>
io.micronaut.data.runtime.operations.internal.AbstractReactiveEntityOperations<Ctx,T,Exc>
- Type Parameters:
Ctx- The operation contextT- The entity typeExc- The exception
@Internal
public abstract class AbstractReactiveEntityOperations<Ctx extends OperationContext,T,Exc extends Exception>
extends ReactiveEntityOperations<T,Exc>
Abstract reactive entity operations.
- Since:
- 3.3
- Author:
- Denis Stepanov
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected final classInternal entity data holder. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ReactiveCascadeOperations<Ctx>protected final io.micronaut.core.convert.ConversionServiceprotected final Ctxprotected reactor.core.publisher.Mono<AbstractReactiveEntityOperations<Ctx,T, Exc>.Data> protected final EntityEventListener<Object>protected final booleanprotected final booleanprotected final RuntimePersistentEntity<T> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractReactiveEntityOperations(Ctx ctx, ReactiveCascadeOperations<Ctx> cascadeOperations, io.micronaut.core.convert.ConversionService conversionService, EntityEventListener<Object> entityEventListener, RuntimePersistentEntity<T> persistentEntity, T entity, boolean insert) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcascadePost(Relation.Cascade cascadeType) Cascade post operation.protected voidcascadePre(Relation.Cascade cascadeType) Cascade pre operation.protected voidcheckOptimisticLocking(long expected, long received) Compare the expected modifications and the received rows count.protected abstract voidCollect auto-populated values before pre-triggers modifies them.voiddelete()Delete one operation.protected abstract voidexecute()Execute update.protected voidreactor.core.publisher.Mono<T>reactor.core.publisher.Mono<Number>voidpersist()Persist one operation.protected voidTrigger post-actions onEntityEventContext.protected voidTrigger the post persist event.protected voidTrigger the post remove event.protected voidTrigger the post update event.protected booleanTrigger pre-actions onEntityEventContext.protected booleanTrigger the pre persist event.protected booleanTrigger the pre remove event.protected booleanTrigger the pre update event.voidupdate()Update one operation.protected TupdateEntityId(io.micronaut.core.beans.BeanProperty<T, Object> identity, T entity, Object id) Update entity id.voidVeto an entity.
-
Field Details
-
ctx
-
cascadeOperations
-
insert
protected final boolean insert -
hasGeneratedId
protected final boolean hasGeneratedId -
data
protected reactor.core.publisher.Mono<AbstractReactiveEntityOperations<Ctx extends OperationContext,T, dataExc extends Exception>.Data> -
entityEventListener
-
persistentEntity
-
conversionService
protected final io.micronaut.core.convert.ConversionService conversionService
-
-
Constructor Details
-
AbstractReactiveEntityOperations
protected AbstractReactiveEntityOperations(Ctx ctx, ReactiveCascadeOperations<Ctx> cascadeOperations, io.micronaut.core.convert.ConversionService conversionService, EntityEventListener<Object> entityEventListener, RuntimePersistentEntity<T> persistentEntity, T entity, boolean insert) Default constructor.- Parameters:
ctx- The contextcascadeOperations- The cascade operationsconversionService- The conversion serviceentityEventListener- The entity event listenerpersistentEntity- The persistent entityentity- The entityinsert- The insert
-
-
Method Details
-
cascadePre
Cascade pre operation.- Parameters:
cascadeType- The cascade type
-
cascadePost
Cascade post operation.- Parameters:
cascadeType- The cascade type
-
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
-
veto
Veto an entity.- Parameters:
predicate- The veto predicate
-
getEntity
- Specified by:
getEntityin classReactiveEntityOperations<T,Exc extends Exception> - Returns:
- The entity
-
getRowsUpdated
- Returns:
- The 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.
-