У меня есть класс в моем приложении Spring Boot 3, которое отправляет сообщение Kafka, и обновляет статус уведомления и отчет после отправки сообщения: < /p>
public class SomeSender {
KafkaTemplate kafkaTemplate;
NotificationService notificationService;
NotificationReportService notificationReportService;
public void send(Notification notification) {
kafkaTemplate.send(notification).whenComplete((success, error) -> {
updateNotificationStatus(notification);
notificationReportService.createReport(notification);
});
}
private void updateNotificationStatus(Notification notification) {
// some logic
notificationService.update(notification);
}
}
< /code>
оба уведомления service.update (уведомление) и уведомление reportservice.createreport (уведомление) помечены @Transactional. < /p>
Проблема заключается в том, что статус уведомления не обновляется, и некоторые отчеты частично сохраняются или не сохранены вообще. Похоже, что транзакционные методы не работают правильно внутри WhatComplete ().
Что может быть причиной этой проблемы, и как я могу убедиться, что методы @Transaction работают в этом случае?
Подробнее здесь: https://stackoverflow.com/questions/795 ... ot-working