diff --git a/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryExecution.java b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryExecution.java index d59cde1..269e5c3 100644 --- a/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryExecution.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryExecution.java @@ -94,10 +94,6 @@ interface R2dbcQueryExecution { return source; } - if (!mappingContext.hasPersistentEntityFor(returnedType.getReturnedType())) { - return source; - } - if (ReflectionUtils.isVoid(returnedType.getReturnedType())) { if (source instanceof Mono) { diff --git a/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java b/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java index be7d52c..285bbb9 100644 --- a/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/AbstractR2dbcRepositoryIntegrationTests.java @@ -142,7 +142,7 @@ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcInteg }).verifyComplete(); } - @Test // gh-475 + @Test // gh-475, gh-607 void shouldFindApplyingInterfaceProjection() { shouldInsertNewItems(); @@ -154,6 +154,14 @@ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcInteg .consumeNextWith(actual -> { assertThat(actual).contains("SCHAUFELRADBAGGER", "FORSCHUNGSSCHIFF"); }).verifyComplete(); + + repository.findBy(WithName.class) // + .map(WithName::getName) // + .collectList() // + .as(StepVerifier::create) // + .consumeNextWith(actual -> { + assertThat(actual).contains("SCHAUFELRADBAGGER", "FORSCHUNGSSCHIFF"); + }).verifyComplete(); } @Test // gh-475 @@ -375,6 +383,8 @@ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcInteg Flux findAsProjection(); + Flux findBy(Class theClass); + @Query("SELECT name from legoset") Flux findAsDtoProjection(); @@ -442,4 +452,8 @@ public abstract class AbstractR2dbcRepositoryIntegrationTests extends R2dbcInteg interface Named { String getName(); } + + interface WithName { + String getName(); + } }