使用TaskExecutor时数据插入问题

在我的Web服务应用程序中,我实现异步任务执行器以在数据库中插入对象。 但在第一次插入时,它会抛出exception。

org.springframework.orm.hibernate3.HibernateSystemException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: 

第二次刷新url时,对象成功插入数据库。

问题在于未插入对象的新请求的第一个实例。

XML文件

      

我使用了org.springframework.core.task.SimpleAsyncTaskExecutor / org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor以及子表列表是clear()addall() 。 但没有运气。

如果我对任务执行程序标记进行注释,则会正确插入所有新请求对象。 在我的场景中,我必须实现异步任务执行器。

RptServiceImp.java

 public class RptServiceImp{ @javax.annotation.Resource private ApplicationEventPublisher applicationEventPublisher; @Transactional public void process(final RqstLoad rqstLoad ) { try { applicationEventPublisher.publishEvent(new LoggingEvt (this)); }catch(Exception e){ System.out.println("e:: "+e); e.printStackTrace(); } } 

EventListoner.java

 @Component public class EventListener implements ApplicationListener { @Autowired private EvntRptDAO evntRptDAO ; @Override public void onApplicationEvent(LoggingEvt evnt) { final CustResource custRsrc = event.getCustResource(); try { evntRpt er = new evntRpt (custRsrc); evntRptDAO.saveAndFlush(er); } catch(Exception e){ System.out.println("e:: "+e); e.printStackTrace(); } } }