У меня есть этот код:
@Saga
@Slf4j
public class ActionsSaga2 {
@Autowired
transient CommandGateway commandGateway;
@Autowired
transient ActionService actionService;
String id;
ApplicationState state;
@StartSaga
@SagaEventHandler(associationProperty = "applicationId")
public void on(ApplicationCreatedEvent event) {
id = event.getApplicationId();
state = event.getState();
commandGateway.send(ScheduleActionCommand.builder()
.applicationId(event.getApplicationId())
.actionId(id)
.targetState(event.getState())
.build());
}
@EndSaga
@SagaEventHandler(associationProperty = "applicationId")
public void on(ActionDoneEvent event) {
assert id != null;
}
}
Первый @ SagaEventHandler on (событие ApplicationCreatedEvent) устанавливает закрытые поля id и состояние .
Но во втором @ SagaEventHandler on (событие ActionDoneEvent) оба свойства имеют значение null.
Я почти уверен, что вызовы направляются в одну и ту же сагу (единственная записьв saga_entry, который удаляется после второго вызова метода)
Не могли бы вы помочь мне, в чем проблема?
У меня нет специальной конфигурации для саги, используя AxonServer и Spring boot