Springboot JPA Auslagerungsfähigen funktioniert nicht für Seiten-Zahl, die größer als 0 ist

Möchte ich, um die Ergebnisse Paginiert, Der code unten funktioniert gut, wenn der Antrag mit page-parameter auf 0 gesetzt, aber es funktioniert nicht für die Seite>0 ähnliche Seite=1 oder Seite=2 oder page=3 usw.

Hier ist mein RequestMapping

MyResponse getSample(@ModelAttribute MyRequest MyRequest) {
        Pageable pageRequest =  new PageRequest(MyRequest.page, MyRequest.size)
        MyModule.findSamples(MyRequest, pageRequest)
    }



class MyRequest {

    MyQueryType queryType


    String searchTerm


    @Min(value = 0L, message = 'Offset must be greater than or equal to 0')
    int offset = 0

    @Min(value = 0L, message = 'Offset must be greater than or equal to 0')
    int page = 0

    @Min(value = 1L, message = 'Limit must be greater than or equal to 1')
    int limit = 100

    @Min(value = 1L, message = 'Limit must be greater than or equal to 1')
    int size = 5
}


MyModule:Code inside my Module



MyResponse findSamples(MyRequest MyRequest, Pageable pageRequest) {
            log.info("Page Information Set "+pageRequest.pageNumber+pageRequest.pageSize)
            Page<SamplesPO> pages = null
            pages = MyRepository.findAllById(MyRequest.Id, pageRequest)
            } 

Repository-Code:

public interface SampleRepository extends JpaRepository<Sample, Long> {

        @Query('''
        select e.Samples
        from ParentSampleTable e
        where e.Id = :Id
    ''')
    Page<Sample> findAllById(@Param('Id') String Id, Pageable pageRequest)
}
  • Dies ist SPring Data JPA-API (!= JPA-API). Auslagerungsfähigen/Repository nichts zu tun mit der JPA API. Tags behoben
InformationsquelleAutor Bitton | 2017-01-17



2 Replies
  1. 1

    Lesen PageRequest java-docs, bevor Sie Mit untenstehenden code. PageRequest
    Anforderung funktioniert auf Seite Nummer(beginnt mit dem index 0 auf 1,2,3 und so
    auf) und die Größe( limit Sie wollen)

    Sort sort = new Sort(Sort.Direction.DESC, "mfgDate");
    
    Pageable pageable = new PageRequest(pageNumber, pageSize, sort);
    
     @Repository
     public interface BikeRepository extends MongoRepository<Bike, String> {
            Page<Bike> findByCompanyId(String companyId, Pageable pageable);
        }
  2. 0

    Könnten Sie versuchen, das extrahieren der id mit @PathParam

    Methode getSample kommentiert mit @GetMapping mit params (@PathParam("id") String id, Pageable pageable) und es konnte zurück sampleRepository.findAllById(id, pageable)

    Url könnte so Aussehen: /samples/id?page=pageNr&size=nrOfElemOnPage

    Repository zurückgeben sollte
    Page<Sample> findAllById(String id, Pageable pageable)

    Bitte auch berücksichtigen, refactoring(Einzug) den code vor dem posten es auf stackoverflow

    Auch dies könnte eine doppelte: Mit findAll PagingAndSortingRepository mit filter

    • Ich konnte das Problem beheben, durch das schreiben meines eigenen PageRequest Klasse implementiert Interface Pageable. Zuerst habe ich SearchRequest Klasse statt PathParam-id, den zweiten bekomme ich keine Seite in der URL. Ich bekomme offset und limit in die SearchRequest. Und am wichtigsten von allen @ – Abfrage Rücksendung der Untergeordneten Datensätze aus der Übergeordneten Tabelle und so hatte ich zum umschreiben der Abfrage zurückgegebenen Untergeordneten Datensätze aus Untergeordneten Tabelle erstellen Sie eine Verknüpfung zu der Übergeordneten Tabelle.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.