2017-03-21 3 views
0

Ich implementiere eine API, die korrekt funktioniert, aber wenn ich pagitation verwende, gibt dies nichts zurück.Warum funktioniert meine auslagerbare API nicht mit Spring MVC?

ich für mein Repository den nächsten Code haben:

public interface VinetaRepository extends JpaRepository<Vineta, Long> { 
List<Vineta> findAllByOrderByCreationdateDesc(); 
List<Vineta> findByTitulo(String titulo);} 

und, wenn ich das nächste RequestMapping everthings verwendet wird, ist ok:

@JsonView(VinetaView.class) 
@RequestMapping("/api/vinetas2/") 
public List<Vineta> getvinetas2(){ 
    return this.vinetarepository.findAll(); 
} 

aber, wenn ich die Paginierung verwenden, meine api ist alles zurück:

@JsonView(VinetaView.class) 
@RequestMapping(value = "/api/vinetaspage/", method= RequestMethod.GET) 
public Page<Vineta> getvinetaspage(Pageable page){ 
    //This System.out print all the size of my repository 
    System.out.println(this.vinetarepository.findAll().size()); 
    //This for print the title for my 20 first objects Vineta 
    for(Vineta v:this.vinetarepository.findAll(page)){ 
     System.out.println(v.getTitulo()); 
    } 
    // This print 20 
    System.out.println(this.vinetarepository.findAll(page).getSize()); 
    //This print the page number = 0 
    System.out.println(page.getPageNumber()); 
    //This print the page size = 20 
    System.out.println(page.getPageSize()); 

    //Finally, this is not returning nothing 
    return vinetarepository.findAll(page); 
} 

Mit dem System aus, kann ich sehen, dass die Größe meiner Abfrage entspricht ct (20), aber nichts kehrt zurück.

Beide Funktionen verwenden denselben Jsonview, daher wird dieses Problem verworfen.

+0

haben Sie debuggen die Anfrage zu überprüfen, was in 'vinetarepository.findAll (Seite) ist' –

+0

Ich bezweifle nichts zurückgegeben, was ist Ihrer Meinung nach wirkt auf? Die erste Methode gibt eine 'List' zurück, die andere eine' Page'. Wenn Ihre Ansicht nicht mit letzterem umgehen kann, wird natürlich nichts zurückgegeben. –

+0

Haben Sie eine Lösung für dieses Problem gefunden? Ich stehe genau dem gleichen Problem gegenüber. –

Antwort

0

Eine Adapterklasse (wie PageWrapper) wäre zum Umbruch der Spring Data Page-Schnittstelle erforderlich, da die Seitenschnittstelle möglicherweise nicht über Funktionen verfügt.

public class PageWrapper {

}

Verwandte Themen