8
可以說我有以下系統信息庫:春數據JPA庫與Java 8流
public interface UserRepository extends JpaRepository<User, Long> {
@Query("select u from User u")
Stream<User> streamAllPaged(Pageable pageable);
}
我要執行搜索:
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?
}
}
很顯然,我可以使用一個子表和手動插入頁面大小等,但我想應該有一個更「標準」的方式來做到這一點?
我會想'Collectors.partitioningBy'可以幫助,但是如果沒有訪問流中的位置,就不會看到如何。 – Aaron
如果你不介意使用另一個流,[這個問題](http://stackoverflow.com/questions/29273705/how-to-paginate-a-list-of-objects-in-java-8)有回答。 – Aaron