Lets sagen, dass ich das folgende Repository:Spring Data JPA Repositorys mit Java 8 Streams
public interface UserRepository extends JpaRepository<User, Long> {
@Query("select u from User u")
Stream<User> streamAllPaged(Pageable pageable);
}
Und ich möchte eine Suche durchzuführen:
public Page<User> findAllUsers(Pageable page) {
Page<User> page = null;
try (Stream<User> users = userRepository.streamAllPaged(page)) {
Set<User> users = users.filter(u -> user.getName().equals("foo"))
.collect(Collectors.toSet());
//create page from set?
}
}
Offensichtlich konnte ich eine Unterliste verwenden und manuell einfügen Seitengrößen etc aber ich denke, dass es einen "Standard" Weg geben sollte, dies zu tun?
Ich hätte gedacht 'Collectors.partitioningBy' könnte helfen, aber ohne Zugriff auf eine Position im Stream in nicht sehen, wie. – Aaron
Wenn es Ihnen nichts ausmacht, einen anderen Stream zu verwenden, hat [diese Frage] (http://stackoverflow.com/questions/29273705/how-to-paginate-a-list-of-objects-in-java-8) die Antworten. – Aaron