Nachdem die mybatis-plus-Paging-Parameter übergeben wurden, enthält die SQL-Where-Bedingung keine Limit-Paging-Informationsoperation

Nachdem die mybatis-plus-Paging-Parameter übergeben wurden, enthält die SQL-Where-Bedingung keine Limit-Paging-Informationsoperation

Ich habe fast zwei Stunden damit verbracht, verschiedene Methoden auszuprobieren. Später dachte ich, dass die Datenmenge nach dem Filtern nach „wo“ nicht die Standardanzahl von einer Seite erreichte, also habe ich die Grenzinformationen in „wo“ einfach nicht angezeigt. Nachdem ich es ausprobiert hatte, war es tatsächlich der Fall. . . Der Autor hat das Programm zwar wirklich intelligent genug gemacht, aber diese Intelligenz hat mich auch zwei Stunden vergeblich verschwenden lassen. . . Oder vielleicht bin ich einfach zu dumm...

Das Merkwürdige ist aber, dass wenn ich den Parameter QueryWrapper nicht setze, die Paging-Begrenzung nach „where“ wieder angezeigt wird. Ich kann nicht herausfinden, was der Autor denkt. . .

Weitere Einzelheiten finden Sie im Code:

@Überschreiben
 öffentliche PageUtils queryPage(Map<String, Object> params) {
 
  IPage<Bestelleinheit> Seite = diese.Seite(
    neue Abfrage<OrderEntity>().getPage(params),
    neuer QueryWrapper<OrderEntity>().eq(!UtilString.isNull(params.get("user_id"))
      ,"Benutzer-ID", params.get("Benutzer-ID"))
  );
 
  gib neue PageUtils(Seite) zurück;
 }

Der Zweck der Aufzeichnung besteht darin, zu hoffen, dass Freunde, die wie ich in diese besondere Situation geraten, diese Ecke schnell umgehen können, denn die Zeit ist kostbar. Gute Nacht^.^

Abschließend füge ich das offizielle Dokument bei. Ich hoffe, Sie können das Dokument systematischer lesen.

https://mp.baomidou.com/guide/dynamic-datasource.html

Ergänzendes Wissen: Notieren Sie die durch Reverse Engineering erzeugte Grube des Grenzfehlers der Mybatisplus-Paging-Methode

Denn bevor ich das Problem gelöst habe, habe ich auch im Internet und auf der offiziellen Website nach Lösungen gesucht, aber es gab keine Lösung. Deshalb habe ich diesen Artikel geschrieben, in der Hoffnung

Studierende, die nach Ihnen kommen, können Umwege bei der Entwicklung vermeiden

Controller-Ebene

 @RequestMapping("/Liste")
 öffentliche R-Liste(@RequestParam Map<String, Object> params){
  PageUtils-Seite = categoryService.queryPage(params);
  return R.ok().put("Seite", Seite);
 }

Die übergebenen Parameter sind wie in der Abbildung dargestellt

Server-Schnittstelle

öffentliche Schnittstelle CategoryService erweitert IService<CategoryEntity> {
 
 PageUtils queryPage(Map<String, Object> Parameter);
 }

Problem und Lösung (das ist die Lösung im Internet und sie wurde nicht gelöst...)

Bei der Abfrage wird die Paging-Funktion jedoch nicht wirksam und das Abfrageergebnis sind alle Daten in der Tabelle. Wenn der POM korrekt ist, überprüfen Sie, ob der Paging-Interceptor in den Spring eingefügt wurde.

importiere com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
importiere org.springframework.context.annotation.Bean;
importiere org.springframework.context.annotation.Configuration;
 
@Konfiguration
öffentliche Klasse mybatisPlusConfig {
 @Bohne
 öffentlicher PaginationInterceptor paginationInterceptor(){
  gibt einen neuen PaginationInterceptor() zurück;
 }
}

Das Obige ist die Lösung, die ich im Internet gefunden habe. Ich habe sie in das Projekt kopiert und festgestellt, dass die Methode veraltet ist und nicht funktioniert.

Später stellte ich fest, dass das Problem darin bestand, dass meine Mybatisplus-Version zu hoch war und daher nicht unterstützt wurde

Dies ist die Version, auf die ich in Maven verwiesen habe

Suchen Sie dann im Internet nach der Interceptor-Methode

Das Problem wird durch die Verwendung einer neuen Paging-Methode gelöst

Der Schlüssel zum Problem liegt darin, das Problem grundsätzlich zu finden. Ich habe über die Methode nachgedacht, das Problem zu finden, damit ich heute nicht 1 oder 2 Stunden verschwende, ohne es zu finden. Ich würde zuerst die offizielle Dokumentation lesen.

Schauen Sie sich den offiziellen Beispielcode an! ! ! ! ! !

Das Folgende ist das Reverse Engineering, das ich auf Gitee gefunden habe

Da der Projektzeitplan sehr eng ist und mir das Betrachten des alten Framework-Codes meines Kollegen Kopfschmerzen bereitet, wäre es nicht großartig, sich für Reverse Engineering zu entscheiden und selbst ein leichtes Framework zu erstellen?

Da das Projekt SpringCloud-Microservices verwendet, bin ich für ein System verantwortlich, sodass ich tun kann, was ich will.

Das Reverse Engineering, das ich hier verwende, ist das Renren-Generator-Framework auf Gitee

In dem von ihm generierten Code gibt es keinen Interceptor für die Paging-Methode. Ich habe festgestellt, dass die Methode auf der offiziellen Website ebenfalls veraltet ist, was eine große Falle darstellt.

Der obige Artikel über Mybatis-Plus-Paging und SQL-Where-Bedingung ohne Begrenzung der Paging-Informationsoperation ist alles, was ich mit Ihnen teilen möchte. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Mybatis Where-Tag-Verwendung
  • Mybatis plus wo Klammern hinzugefügt werden
  • Mybatisplus, wo QueryWrapper plus Klammern verschachtelte Abfragemethode
  • Lösen Sie das Problem, dass in Mybatis Where-If die Großbuchstaben AND und OR nicht erkannt werden.
  • Mybatis dynamisches SQL if, choose, where, set, trim, foreach Tag Beispiel detaillierte Erklärung
  • Zusammenfassung der Verwendung des Mybatis Where-Tags

<<:  Aktivieren Sie OCSP, um die Effizienz der https-Zertifikatsüberprüfung zu verbessern und das Problem des langsamen Zugriffs auf Let’s Encrypt SSL-Zertifikate zu lösen

>>:  Beispiel für HTML-Abschirmung des Rechtsklickmenüs und der Linksklick-Eingabefunktion

Artikel empfehlen

Warum wird in React nicht empfohlen, einen Index als Schlüssel zu verwenden?

1. Vergleichen Sie den alten virtuellen DOM mit d...

Eine kurze Analyse der Unterschiede zwischen px, rem, em, vh und vw in CSS

Absolute Länge px px ist der Pixelwert, also eine...

Installationstutorial für Docker unter Linux

Das Docker-Paket ist bereits im Standard-Reposito...

Zusammenfassung der grundlegenden Kenntnisse zur MySql-Datenbank

Inhaltsverzeichnis Grundlegende Datenbankvorgänge...

So führen Sie Befehle auf einem Remote-Linux-System über SSH aus

Manchmal müssen wir einige Befehle auf einem Remo...

Nodejs implementiert Intranet-Penetrationsdienst

Inhaltsverzeichnis 1. Proxy im LAN 2. Intranet-Pe...

Sicherheitseinstellungen für Windows 2016 Server

Inhaltsverzeichnis Systemupdate-Konfiguration Änd...

Webdesign: Wenn der Titel nicht vollständig angezeigt werden kann

<br />Ich habe mir heute die neu gestaltete ...

MySQL: MySQL-Funktionen

1. Integrierte Funktionen 1. Mathematische Funkti...

So zeigen Sie MySQL-Links an und löschen abnormale Links

Vorwort: Während des Betriebs und der Wartung der...

HTML Gewichtsverlust Optimieren Sie HTML-Tags zum Erstellen von Webseiten

HTML 4 HTML (nicht XHTML), MIME-Typ ist text/html...

Win10 Installation Linux System Tutorial Diagramm

Um eine virtuelle Maschine auf einem Windows-Syst...

Schritte zum Kapseln der Karussellkomponente in vue3.0

Inhaltsverzeichnis 1: Kapselungsidee 2. Verpackun...