Я пытаюсь запустить немного кода внутри потока , который будет делать некоторые запросы к базе данных, я использую jpa без пружины. Код выглядит следующим образом:
@Stateless
public class ResultServiceImpl implements ResultService {
@Inject
private ReportService reportService;
@Inject
private ReportRepository reportRepository;
public void processAllReports(){
Runnable runnable = () -> {
ReportDAO dao = (ReportDAO) reportRepository;
EntityManager em = dao.getEm().getEntityManagerFactory().createEntityManager();
em.getTransaction().begin();
reportService.process();
em.getTransaction().commit();
};
Thread thread = new Thread(runnable);
thread.start();
}
}
}
в моих тестах, когда я пытаюсь начать транзакцию, я получаю сообщение об ошибке
00:47:49,264 ERROR [stderr] (Thread-121) Exception in thread "Thread-121" java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
00:47:49,264 ERROR [stderr] (Thread-121) at org.hibernate.jpa.spi.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:1333)
00:47:49,264 ERROR [stderr] (Thread-121) at br.com.govbr.controleinterno.domain.service.impl.UploadServiceImpl.lambda$0(UploadServiceImpl.java:198)
00:47:49,265 ERROR [stderr] (Thread-121) at java.lang.Thread.run(Unknown Source)
Кто-нибудь может дать направление или даже лучшее возможное решение этой проблемы?