From c4527daaa03d0d7263d25212713a46f85888b47d Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 6 Nov 2025 16:40:53 +0100 Subject: [PATCH] Enable `Streamable` for `Pageable` use. Closes #3397 --- .../repository/util/QueryExecutionConverters.java | 1 + .../data/repository/query/QueryMethodUnitTests.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java index d812f6fe6..88943462b 100644 --- a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java +++ b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java @@ -100,6 +100,7 @@ public abstract class QueryExecutionConverters { ALLOWED_PAGEABLE_TYPES.add(Slice.class); ALLOWED_PAGEABLE_TYPES.add(Page.class); ALLOWED_PAGEABLE_TYPES.add(List.class); + ALLOWED_PAGEABLE_TYPES.add(Streamable.class); ALLOWED_PAGEABLE_TYPES.add(Window.class); ALLOWED_PAGEABLE_TYPES.add(SearchResults.class); diff --git a/src/test/java/org/springframework/data/repository/query/QueryMethodUnitTests.java b/src/test/java/org/springframework/data/repository/query/QueryMethodUnitTests.java index ac9d92371..8f951c07e 100755 --- a/src/test/java/org/springframework/data/repository/query/QueryMethodUnitTests.java +++ b/src/test/java/org/springframework/data/repository/query/QueryMethodUnitTests.java @@ -206,6 +206,16 @@ class QueryMethodUnitTests { assertThat(new QueryMethod(method, repositoryMetadata, factory, DefaultParameters::new).isStreamQuery()).isTrue(); } + @Test // GH-3397 + void doesNotRejectStreamableForPagination() throws Exception { + + RepositoryMetadata repositoryMetadata = new DefaultRepositoryMetadata(SampleRepository.class); + var method = SampleRepository.class.getMethod("streamable", Pageable.class); + + assertThat(new QueryMethod(method, repositoryMetadata, factory, DefaultParameters::new).isCollectionQuery()) + .isTrue(); + } + @Test // DATACMNS-716 void doesNotRejectCompletableFutureQueryForSingleEntity() throws Exception { @@ -445,6 +455,8 @@ class QueryMethodUnitTests { Stream streaming(Pageable pageable); + Streamable streamable(Pageable pageable); + // DATACMNS-716 CompletableFuture returnsCompletableFutureForSingleEntity();