So führen Sie eine Paginierung während der Stapelverarbeitung mit JPA durchJava

Java-Forum
Guest
 So führen Sie eine Paginierung während der Stapelverarbeitung mit JPA durch

Post by Guest »

Dies ist meine JPA-Methode:

Code: Select all

@Query("SELECT tkt FROM Tickets tkt WHERE tkt.viewer.id IN :viewerIds")
Page findPaginatedTicketsByViewerIdsIn(List viewerIds, Pageable pageable);
Das Problem besteht darin, dass ich die folgende Fehlermeldung erhalte, wenn Viewer-IDs die Größe 2100 überschreiten:

Code: Select all

2025-01-25T13:34:39.967+05:30  WARN 24032 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 8003, SQLState: S0001
2025-01-25T13:34:39.968+05:30 ERROR 24032 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
Die Viewer-IDs stammen von einer externen API, daher glaube ich nicht, dass es effizient wäre, diese IDs in einer temporären Tabelle zu speichern, oder was denken Sie? (Dies können mehrere tausend sein).
Die einzige Lösung, die ich sehe, ist die Stapelverarbeitung, aber mit der Stapelverarbeitungslösung führe ich ein neues Problem mit der Sortierung und Paginierung auf Java-Seite ein. Wenn ich beispielsweise 4.000 Viewer-IDs erhalte, rufe ich die JPA-Methode zweimal auf. Wenn die Seitengröße dann 40 beträgt, erhalte ich nach der Aggregation der beiden Stapel 80 Entitäten.
Das würde ich tun Ich muss sie erneut sortieren, aber ich sehe keine Möglichkeit, erneut mit Pageable-Objekten zu sortieren und zu paginieren.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post