我正在尝试使用 Quarkus 和 Hibernate-Panache 异步保存一些数据:
Executors.newFixedThreadPool(1).execute(new Runnable() {
@Override
@Transactional // I need a transaction to persist the data
public void run() {
List<List<String>> myData = myCsvParser.parse(data);
myRepository.importData(myData, myID);
myBusinessService.doBusinessLogic(myID);
}
不幸的是,我得到:
Exception in thread "pool-5-thread-1" javax.enterprise.context.ContextNotActiveException: interface javax.enterprise.context.RequestScoped
at io.quarkus.hibernate.orm.runtime.RequestScopedEntityManagerHolder_ClientProxy.arc$delegate(RequestScopedEntityManagerHolder_ClientProxy.zig:68)
at io.quarkus.hibernate.orm.runtime.RequestScopedEntityManagerHolder_ClientProxy.getOrCreateEntityManager(RequestScopedEntityManagerHolder_ClientProxy.zig:220)
at io.quarkus.hibernate.orm.runtime.entitymanager.TransactionScopedEntityManager.getEntityManager(TransactionScopedEntityManager.java:77)
at io.quarkus.hibernate.orm.runtime.entitymanager.TransactionScopedEntityManager.contains(TransactionScopedEntityManager.java:285)
复制器项目在这里:https ://github.com/MarcusBiel/quarkus-reproducer
提前致谢!