2015-04-29 21 views
5

Ho esaminato sia this e this question. Ma non sono ancora riuscito a configurare il paging per un metodo di repository. Non sono sicuro se sono affetto da un bug o semplicemente non lo scrivo correttamente. Fondamentalmente sto chiedendo se qualcuno potrebbe fornire un esempio di come implementare il paging su un metodo di repository che viene esportato attraverso l'annotazione @RepositoryRestResource?Avvio a molla: come configurare l'impaginazione su un @RepositoryRestResource?

Il mio tentativo di raggiungere l'impaginazione

@RepositoryRestResource(collectionResourceRel = "users", path = "users") 
public interface UserRepository extends JpaRepository<User, Long> { 

    Page<User> findByUserGroup(@Param("userGroup") String userGroup, 
              @Param("page") Pageable pageable); 

} 

Il messaggio di errore generato dal codice

Offending method public abstract org.springframework.data.domain.Page com.project.repository.UserRepository.findByUserGroup(java.lang.String,java.awt.print.Pageable) 

Ho anche provato a rimuovere il metodo param per paginabile che poi ha portato in questo errore:

Caused by: java.lang.IllegalArgumentException: Either use @Param on all parameters except Pageable and Sort typed once, or none at all! 

dipendenze sto usando in questo progetto.

  1. Oracle java 8.
  2. "org.springframework.boot: spring-boot-Gradle-plugin: 1.2.3.RELEASE",
  3. "org.springframework.boot: spring-boot-starter -Web "
  4. "org.springframework.boot: primavera-boot-starter-attuatore",
  5. 'org.springframework.boot: primavera-boot-starter-mail',
  6. " org.springframework. boot: spring-boot-starter-thymeleaf ",
  7. " org.spr ingframework.boot: primavera-boot-starter-sicurezza "
  8. "org.springframework.security.oauth: spring-security-OAuth2: 2.0.0.RC2",
  9. " org.springframework.boot: molla boot-avviamento-data-JPA",
  10. "org.springframework.boot: spring-boot-starter-data-riposo",

Qualsiasi aiuto sarebbe molto apprezzato.

Update: La soluzione finale

L'aggiunta di questa come riferimento per chiunque altro chiedendo come fare questo. La differenza principale era che dovevo assicurarmi di importare l'oggetto giusto Pageable come indicato nella risposta scelta.

@RepositoryRestResource(collectionResourceRel = "users", path = "users") 
public interface UserRepository extends JpaRepository<User, Long> { 

    Page<User> findByUserGroup(@Param("userGroup") String userGroup, Pageable pageable); 

} 

risposta

11

Si sta utilizzando la classe Pageable dal pacchetto errato: java.awt.print.Pageable. Si deve usare org.springframework.data.domain.Pageable

+0

Bene macchiato! Questo era esattamente il problema. Grazie! :) – thunki

0

Sembra po 'in ritardo, ma la loro è la soluzione più facile per l'impaginazione. Vedi sotto lo snippet di codice.

public interface NotebookRepository extends PagingAndSortingRepository<Notebook, Long> { 

Ad esempio completo si prega di passare attraverso questo blog

+0

Riesco a vedere le persone che visitano il mio blog, se questa soluzione funziona, si prega di votare. – shaILU

+0

loro layout e font del tuo blog rendono quasi impossibile leggere il codice ... – vratojr

Problemi correlati