в методе, я хочу сохранить объект или обновить сущность, и в то же время я должен сохранить другую сущность (она используется для некоторой статистики) , потому что второй метод не касается моей основной деятельности, поэтому я провожу его через асинхронный. но, наконец, я обнаружил, что метод async не сохраняет мою сущность в БД. так невероятно, нет исключения. PS, я использую Spring-Data-JPA, чтобы сохранить свою сущность
и когда я скачал исходный код jpa для его отладки, я обнаружил, что он действительно запускает метод persist (в jpa save method).
так что же случилось ? пожалуйста
- Я пытаюсь асинхронно вызвать другой сервис, чтобы сохранить что-то, это успешно
- Я пытаюсь обменять save на saveandflush, но это не сработало
- Я пытаюсь сделать эти два метода в транзакции, но она тоже не удалась
{
CompletableFuture.runAsync(()->
statisticService.saveOrUpdateStatisticInfo(questionRecordPO.getLessonId(),
questionRecordPO.getCourseId(),
questionRecordPO.getQuestionId(),
correct));
examRecordDAO.save(examRecord);
}
CourseAnswerStatistic courseAnswer = courseAnswerStatisticDAO.findByLessonIdEqualsAndElementIdAndQuestionId(lessonId, elementId, questionId);
CourseAnswerStatistic saveParam = new CourseAnswerStatistic();
saveParam.setLessonId(lessonId);
courseAnswerStatisticDAO.save(saveParam);