诡异的分页代码失效问题
前言: 之前碰到了一个界面上分页失效的问题,并为之困扰了数日,后台定位为排序失效的问题,问题就迎刃而解了... 问题描述: 在界面上的某个分页功能存在失效的问题,第一页、第二页和最后一页的分页效果正常,但是中间的分页数据不变。 QA提了一个关于此的
前言: 之前碰到了一个界面上分页失效的问题,并为之困扰了数日,后台定位为排序失效的问题,问题就迎刃而解了...
问题描述:
在界面上的某个分页功能存在失效的问题,第一页、第二页和最后一页的分页效果正常,但是中间的分页数据不变。 QA提了一个关于此的Bug.
问题分析:
1. 分析界面分页代码
界面分页的代码属于在项目使用较多的组件,关于失效分页部分的代码无特殊的定制和使用。
2. 前端和后台端交互的分析
基于HTTP的监控工具,发现分页请求的请求数据一切正常,分页的start/limit数据正确,过滤条件是正确的,排除前端问题。
3. 后台的代码分析
后台的代码是基于Hibernate实现的DAO查询分析,代码基于基类的常规查询,无特殊代码存在。而且这些基类的常规查询被项目中不同的模块所使用,其他模块功能正常。
故对这些查询的代码是否存在问题,持怀疑态度。
4. 怀疑生成的SQL是否存在问题
打印出在查询中使用的SQL语句,经过分析,SQL也不存在问题。其中使用了log4jdbc来监控sql执行。
5. 基于查询中使用的SQL在Oracle的plsql中直接运行SQL
结果发现,在50~75, 75-~100等区间,的确查询数据不变。 SQL语句:
select * from (select row_.*, rownum rownum_ from (select this_.id as id25_0_, this_.create_time as create2_25_0_, this_.creator as creator25_0_, this_.modify_time as modify4_25_0_, this_.updater as updater25_0_, this_.version as version25_0_, this_.bank_id as bank7_25_0_, this_.bank_name as bank8_25_0_, this_.chk_comment as chk9_25_0_, this_.chk_status as chk10_25_0_, this_.cup_bank_id as cup11_25_0_, this_.del_status as del12_25_0_, this_.smp_name as smp13_25_0_, this_.status as status25_0_ from ns_para_bank this_ where this_.chk_status = '02' and this_.chk_status = '02' and this_.del_status = '01' order by this_.modify_time desc ) row_ where rownum <= 100) where rownum_ > 75
经过排查,发现大部分的modifiedTime字段的数据为空,故导致了排序失效;由于排序失效,引发了分页数据不变的问题
问题的解决
为排序条件新增了一个排序字段, 在modified_time失效的情况下,保证整体排序的有效性,即可解决分页失效问题。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ブルー スクリーン コード 0x0000001 の対処法。ブルー スクリーン エラーは、コンピューター システムまたはハードウェアに問題がある場合の警告メカニズムです。コード 0x0000001 は、通常、ハードウェアまたはドライバーの障害を示します。ユーザーは、コンピュータの使用中に突然ブルー スクリーン エラーに遭遇すると、パニックになり途方に暮れるかもしれません。幸いなことに、ほとんどのブルー スクリーン エラーは、いくつかの簡単な手順でトラブルシューティングして対処できます。この記事では、ブルー スクリーン エラー コード 0x0000001 を解決するいくつかの方法を読者に紹介します。まず、ブルー スクリーン エラーが発生した場合は、再起動を試みることができます。

終了コード 0xc000007b コンピューターを使用しているときに、さまざまな問題やエラー コードが発生することがあります。その中でも最も厄介なのが終了コード、特に終了コード0xc000007bです。このコードは、アプリケーションが正常に起動できず、ユーザーに迷惑がかかっていることを示しています。まずは終了コード0xc000007bの意味を理解しましょう。このコードは、32 ビット アプリケーションを 64 ビット オペレーティング システムで実行しようとしたときに通常発生する Windows オペレーティング システムのエラー コードです。それはそうすべきだという意味です

デバイスをリモートでプログラムする必要がある場合は、この記事が役に立ちます。あらゆるデバイスをプログラミングするためのトップ GE ユニバーサル リモート コードを共有します。 GE リモコンとは何ですか? GEUniversalRemote は、スマート TV、LG、Vizio、Sony、Blu-ray、DVD、DVR、Roku、AppleTV、ストリーミング メディア プレーヤーなどの複数のデバイスを制御するために使用できるリモコンです。 GEUniversal リモコンには、さまざまな機能を備えたさまざまなモデルがあります。 GEUniversalRemote は最大 4 台のデバイスを制御できます。あらゆるデバイスでプログラムできるトップのユニバーサル リモート コード GE リモコンには、さまざまなデバイスで動作できるようにするコードのセットが付属しています。してもいいです

0x000000d1 ブルー スクリーン コードは何を意味しますか? 近年、コンピューターの普及とインターネットの急速な発展に伴い、オペレーティング システムの安定性とセキュリティの問題がますます顕著になってきています。よくある問題はブルー スクリーン エラーで、コード 0x000000d1 もその 1 つです。ブルー スクリーン エラー、または「死のブルー スクリーン」は、コンピューターに重大なシステム障害が発生したときに発生する状態です。システムがエラーから回復できない場合、Windows オペレーティング システムは、画面上にエラー コードを含むブルー スクリーンを表示します。これらのエラーコード

Laravel のログイン期限切れに関するよくある問題の解決方法 Laravel を使用して Web アプリケーションを開発する場合、ログイン認証は非常に重要な機能です。ただし、ログイン後、長時間操作をしないと自動的にログアウトしたり、認証に失敗したりする場合があります。この問題は比較的よくある問題ですが、セッション時間の設定による解決方法と具体的なコード例を紹介します。 1. Laravelでセッションの有効期限を設定します(デフォルトではsessi)。

プログラマーとして、私はコーディング体験を簡素化するツールに興奮しています。人工知能ツールの助けを借りて、デモ コードを生成し、要件に応じて必要な変更を加えることができます。 Visual Studio Code に新しく導入された Copilot ツールを使用すると、自然言語によるチャット対話を備えた AI 生成コードを作成できます。機能を説明することで、既存のコードの意味をより深く理解できます。 Copilot を使用してコードを生成するにはどうすればよいですか?始めるには、まず最新の PowerPlatformTools 拡張機能を入手する必要があります。これを実現するには、拡張機能のページに移動し、「PowerPlatformTool」を検索して、[インストール] ボタンをクリックする必要があります。

Linux オペレーティング システムでファイルを操作するには、開発者がファイル、コード、プログラム、スクリプトなどを効率的に作成および実行できるようにするさまざまなコマンドとテクニックを使用する必要があります。 Linux 環境では、拡張子「.a」を持つファイルは静的ライブラリとして非常に重要です。これらのライブラリはソフトウェア開発において重要な役割を果たし、開発者が複数のプログラム間で共通の機能を効率的に管理および共有できるようにします。 Linux 環境で効果的なソフトウェア開発を行うには、「.a」ファイルの作成方法と実行方法を理解することが重要です。この記事では、Linux の「.a」ファイルのインストールと構成方法を包括的に紹介します。Linux の「.a」ファイルの定義、目的、構造、作成および実行方法について見てみましょう。 Lとは何ですか

2023 年 3 月 14 日に ChatGLM-6B が発売されて以来、GLM シリーズ モデルは幅広い注目と認知を得てきました。特にChatGLM3-6Bがオープンソース化されてからは、Zhipu AIが投入する第4世代モデルに対する開発者の期待が高まっている。 GLM-4-9B のリリースにより、この期待はついに完全に満たされました。 GLM-4-9B の誕生 小型モデル (10B 以下) により強力な機能を提供するために、GLM 技術チームはこの新しい第 4 世代 GLM シリーズ オープン ソース モデル、GLM-4-9B をほぼ半年の期間を経て発売しました。探検。このモデルは、精度を確保しながらモデルサイズを大幅に圧縮し、推論速度の高速化と効率化を実現しています。 GLM 技術チームの調査はまだ終わっていない
