Springboot プロジェクト PageHelper がバージョン 5.3.2 にアップグレードされ、ページング クエリが失敗する
オンライントラブルシューティング
背景: この現象は、ゲートウェイがエラーを報告したためですFluxOnAssembly$OnAssemblyException
。調査の結果、ページネーション クエリ中に 2,000 個を超えるデータが返されたため、データ量がゲートウェイの制限を超え、エラーが発生したことが判明しました。つまり、pageHelper ページネーション クエリは有効になりません。
理由:バージョン 5.3.2 にアップグレードした後、pageHelper の設定方法が変更されました。
-
下位バージョンの設定方法は以下の通りです
-
@Configuration public class PageHelperConfig { @Bean public PageHelper pageHelper() { PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); properties.setProperty("offsetAsPageNum", "true"); properties.setProperty("rowBoundsWithCount", "true"); properties.setProperty("reasonable", "true"); //配置mysql数据库的方言 properties.setProperty("dialect", "mysql"); pageHelper.setProperties(properties); return pageHelper; } }
解決:
-
PageHelper を PageInterceptor 経由で登録するように変更します。
-
@Configuration public class PageHelperConfig { @Bean public PageInterceptor pageInterceptor(){ PageInterceptor pageInterceptor = new PageInterceptor(); Properties properties = new Properties(); properties.setProperty("offsetAsPageNum", "true"); properties.setProperty("rowBoundsWithCount", "true"); properties.setProperty("reasonable", "true"); //配置mysql数据库的方言 properties.setProperty("helperDialect", "mysql"); pageInterceptor.setProperties(properties); return pageInterceptor; } }