У меня есть транзакционный метод saveAnswer. В этом методе я вызываю метод сохранения из JpaRepository. Затем я использую Future, который вызывает метод findById, и этот метод возвращает значение NULL. Но если я вызову метод finById за Future, я получу ожидаемый результат.
Как я понимаю, в будущем запускается новый поток, и этот шаг не знает ничего о действиях в транзакции. Как я могу обойти это?
class MyClass{
JpaRepostory answerRepository;
...
@Transactional
Answer saveAnswer(answerDto AnswerDto){
Answer result = answerRepostory.save(answerDto);
...
Future<Answer> future = executor.submit( ()- > someClass.run(result.id))
future.get()
}
class SomeClasss{
run(Long id ){
answerRepostory.findById(id)
}
}