phép nói rằng tôi có kho sau:Xuân JPA Repositories dữ liệu với Java 8 Streams
public interface UserRepository extends JpaRepository<User, Long> {
@Query("select u from User u")
Stream<User> streamAllPaged(Pageable pageable);
}
Và tôi muốn thực hiện tìm kiếm:
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?
}
}
Rõ ràng tôi có thể sử dụng một sublist và tự chèn trang kích cỡ vv nhưng tôi đoán rằng cần có một cách "tiêu chuẩn" hơn để làm điều này?
Tôi đã nghĩ rằng 'Collectors.partitioningBy' có thể giúp ích, nhưng không truy cập vào vị trí trong luồng không thấy cách thực hiện. – Aaron
Nếu bạn không ngại sử dụng luồng khác, [câu hỏi này] (http://stackoverflow.com/questions/29273705/how-to-paginate-a-list-of-objects-in-java-8) có câu trả lời. – Aaron