У меня есть Aggregate
GiftCard, определенный как
@Data
@NoArgsConstructor
@Aggregate
public class GiftCard {
@AggregateIdentifier
private String id;
private int remainingValue;
@CommandHandler
public GiftCard(IssueCardCommand cmd) {
apply(new CardIssuedEvent(cmd.getCardId(), cmd.getAmount()));
}
@CommandHandler
public GiftCard(TempCommand cmd) {
apply(new CardIssuedEvent(cmd.getCardId(), cmd.getAmount()));
}
@EventSourcingHandler
public void on(CardIssuedEvent event) {
this.id = event.getCardId();
this.remainingValue = event.getAmount();
}
}
И я отправляю IssueCardCommand
с контроллера.
public String createGreeting(@PathVariable String cardNumber) {
IssueCardCommand issueCardCommand = new IssueCardCommand(cardNumber, 100);
commandGateway.sendAndWait(issueCardCommand, 500L, TimeUnit.MILLISECONDS);
return "Hey";
}
Я могу подтвердить, что событие отправлено, посмотрев на http://localhost:8024/#query
в AxonServer.
Я хочу сделать EventSourcing и настроил базу данных H2 в памяти.
compile group: 'org.projectlombok', name: 'lombok', version: '1.18.6'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.1.3.RELEASE'
implementation 'org.axonframework:axon:4.1.1'
implementation 'org.axonframework:axon-spring-boot-starter:4.1.1'
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.1.4.RELEASE'
runtime group: 'com.h2database', name: 'h2', version: '1.4.199'
Когда я смотрю на h2-console после отправки события, я не могу найти это событие в базе данных.Многие статьи были написаны, говоря, это будет храниться в таблице DOMAIN_EVENT_ENTRY
.К сожалению, в моем случае я не могу найти эту таблицу.Я могу видеть только ASSOCIATION_VALUE_ENTRY
, SAGA_ENTRY
, TOKEN_ENTRY
эти 3 таблицы.
Вот так выглядит моя установка.Команды и события написаны для целей обучения / практики (вы можете игнорировать бизнес-контекст и лучшие практики в данный момент)