2017-10-11 2 views
0

je code suivant dans mon printemps RestControllercollection filtre printemps d'abord, puis appliquer la pagination

Page<Message> messages = messagesRepository.findAll(new PageRequest(page, size, new Sort(Sort.Direction.DESC, "id"))); 
return messages.getContent().stream().filter(Message::isPublished).collect(Collectors.toList()); 

Je voudrais appliquer le filtre sur ma première collection (obtenir seulement les messages publiés), puis appliquer une pageSolliciter sur il. Comment puis je faire ça? Actuellement, c'est l'inverse qui ne renvoie pas le résultat attendu.

Répondre

1

Il suffit de créer un query method qui ne renverra que les messages publiés. Quelque chose comme ceci:

public interface MessageRepository extends JpaRepository<Message, Long> { 

    Page<Message> findByPublishedIsTrue(Pageable pageable); 
} 

Supported query keywords.