У меня есть приложение Spring Spring для прослушивания событий, которое выполняет операцию Чтение из Azure Концентратор событий Topi c -> Сохранение события в БД . Я использовал Sink spring-cloud- azure -eventhubs-stream-binder (Версия - 1.2.1) для прослушивания событий из моего topi c, и он отлично работает. Однако это событие не сохраняется в БД. Когда я посмотрел на JPA, созданный sql, там вообще не было операции вставки. Я мог видеть только запрос Select, выполняемый при сохранении JPA.
Я просто следовал примеру в ссылке eventhubs-binder-sample .
@StreamListener(Sink.INPUT)
public void handleMessage(String message, @Header(AzureHeaders.CHECKPOINTER) Checkpointer checkpointer) {
System.out.println(String.format("New message received: '%s'", message));
myRepository.save(message); // No Insert operation triggered
}
Любая операция сохранения JPA, выполняемая внутри аннотированного метода @StreamListener, не вставляет данные в БД.
Любые подсказки очень ценятся. Я должен что-то сделать с транзакцией Синхронизация (KafkaTransactionManager + JPATransactionManager) Полагаю, но не уверен ..