通过多个线程进行Spring事务

问题描述

我想知道是否有可能在多个线程上进行事务处理。 问题是,我需要保留大量记录。如果我按顺序进行,将需要很长时间。这就是为什么我需要对这些实体对象进行分区并并行保留它们。更快,效果更好。但只有权衡是。每个线程都在其自己的事务中。如果任何失败。它将回滚它自己的线程事务,但不是全部。 有没有办法在单个事务中运行所有线程。这样我就可以控制交易了。 我正在使用JpaRepository存储库来保留或删除

代码示例

@Transactional
public boolean executeTransaction(final EntityWrapper entityWrapper) {
       transactionTemplate = new TransactionTemplate(transactionManagerRepo);
try {
        transactionTemplate.execute(new TransactionCallbackWithoutResult() {
            protected void doInTransactionWithoutResult(TransactionStatus status) {
                repo.saveAll(list); // Saves all at once. Batch commit. Which takes long time

         //      other way executing in ThreadPoolExecutor saving 200 records parallelly 
            entitiesList = partition(entitiesMasterList,200);
            executor = ThreadPoolExecutor.initializeThreadPoolExecutor(entitiesList.size());

请提出建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)