Trigger BeforeConvertEvent when saving an aggregate.

Closes: #910
Original pull request: #913.
This commit is contained in:
Jens Schauder
2021-01-14 17:23:46 +01:00
committed by Mark Paluch
parent eef62a0fa2
commit c044c41651
4 changed files with 11 additions and 4 deletions

View File

@@ -404,6 +404,9 @@ public class JdbcAggregateTemplate implements JdbcAggregateOperations {
}
private <T> T triggerBeforeConvert(T aggregateRoot) {
publisher.publishEvent(new BeforeConvertEvent<>(aggregateRoot));
return entityCallbacks.callback(BeforeConvertCallback.class, aggregateRoot);
}

View File

@@ -54,6 +54,7 @@ import org.springframework.data.relational.core.mapping.RelationalMappingContext
import org.springframework.data.relational.core.mapping.event.AfterDeleteEvent;
import org.springframework.data.relational.core.mapping.event.AfterLoadEvent;
import org.springframework.data.relational.core.mapping.event.AfterSaveEvent;
import org.springframework.data.relational.core.mapping.event.BeforeConvertEvent;
import org.springframework.data.relational.core.mapping.event.BeforeDeleteEvent;
import org.springframework.data.relational.core.mapping.event.BeforeSaveEvent;
import org.springframework.data.relational.core.mapping.event.Identifier;
@@ -115,6 +116,7 @@ public class SimpleJdbcRepositoryEventsUnitTests {
assertThat(publisher.events) //
.extracting(e -> (Class) e.getClass()) //
.containsExactly( //
BeforeConvertEvent.class, //
BeforeSaveEvent.class, //
AfterSaveEvent.class //
);
@@ -132,8 +134,10 @@ public class SimpleJdbcRepositoryEventsUnitTests {
assertThat(publisher.events) //
.extracting(e -> (Class) e.getClass()) //
.containsExactly( //
BeforeConvertEvent.class, //
BeforeSaveEvent.class, //
AfterSaveEvent.class, //
BeforeConvertEvent.class, //
BeforeSaveEvent.class, //
AfterSaveEvent.class //
);