EasyExcel を使用してデータベースの内容を Excel テーブルにインポートします。インポートできるデータは最大 500 個のみです

EasyExcel を使用してエクスポート データを Excel テーブルに書き込みました。エクスポートできるアイテムは 500 件のみであることがわかりました。制限を 10000000 に変更した後、エクスポートできるアイテムは 500 件のみになりました。分析後のエクスポート機能では、MybatisPlus と EasyExcel の 2 つのツールが使用されています。問題はこれら 2 つのツールにあると推定されます。
データ容量

@ApiOperation(value = "整改版本详情 - 导出")
	@PostMapping(value = "/changeversion-export")
	public R<String> export(@RequestBody ChangeVersionDetailDTO changeVersionDetailDTO, HttpServletResponse response) {
    
    
		log.info("ChangeVersionDetailController -> export -> ,changeVersion {}" ,changeVersionDetailDTO);
		changeVersionDetailDTO.setSize((long) -1);
		R<IPage<ChangeVersionDetailDTO>> iPageR = this.queryPageList(changeVersionDetailDTO);
		changeVersionDetailService.changeversionExport(iPageR.getData().getRecords(),response);
		return R.status(Boolean.TRUE);
	}

インターネット上の情報を検索したところ、MyBatis-Plus であることが分かり、ソースコードはページングインターセプタクラス PaginationInterceptor で説明されていたとのことですが、設定を修正したところ、PaginationInterceptor クラスが存在しないことが判明しました
ここに画像の説明を挿入

mybatis-plus のバージョン 3.4/3.5 のアップデート以降、オリジナルの paginationInterceptor が正常に使用できないことが判明しました。最新の解決策は次のとおりです。

paginationInterceptor が paginationInnerInterceptor に変更されました

古いバージョンでは構成クラス MybatisPlusConfig が追加されました

import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;

@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
    
    
	  /**
     * 分页插件(old) 
     * @author  [email protected]
     */
      @Bean
      public PaginationInterceptor paginationInterceptor() {
    
    
          PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
          // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
          // paginationInterceptor.setOverflow(false);
          // 设置最大单页限制数量,默认 500 条,-1 不受限制
          paginationInterceptor.setLimit(1000);
          // 开启 count 的 join 优化,只针对部分 left join
          paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
          return paginationInterceptor;
      }
}

新しいバージョンでは、構成クラス MybatisPlusConfig が追加されています

package com.software.dev.config;


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import java.util.Collections;

@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
    
    
    /**
     * 分页插件 3.5.X
     * @author [email protected]
     */
    @Bean
    public PaginationInnerInterceptor paginationInnerInterceptor() {
    
    
        PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor();
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        paginationInterceptor.setMaxLimit(-1L);
        paginationInterceptor.setDbType(DbType.MYSQL);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setOptimizeJoin(true);
        return paginationInterceptor;
    }
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
    
    
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.setInterceptors(Collections.singletonList(paginationInnerInterceptor()));
        return mybatisPlusInterceptor;
    }
}

spring.xml 設定 (まだ spring.xml を使用している場合)

 <bean id="mybatisPlusInterceptor" class="com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor">
        <property name="interceptors">
            <list>
                <ref bean="paginationInnerInterceptor"/>
            </list>
        </property>
    </bean>

    <bean id="paginationInnerInterceptor"
          class="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor">
        <constructor-arg name="dbType" value="H2"/>
    </bean>

おすすめ

転載: blog.csdn.net/qq_45924975/article/details/130630329