diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/ReactiveCassandraQueryExecution.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/ReactiveCassandraQueryExecution.java index 8e6a38e4c..9dc611395 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/ReactiveCassandraQueryExecution.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/ReactiveCassandraQueryExecution.java @@ -220,11 +220,8 @@ interface ReactiveCassandraQueryExecution { ReturnedType returnedType = processor.getReturnedType(); - if (ClassUtils.isPrimitiveOrWrapper(returnedType.getReturnedType())) { - return source; - } - if (returnedType.getReturnedType().equals(Void.class)) { + if (source instanceof Mono) { return ((Mono) source).then(); } @@ -234,6 +231,10 @@ interface ReactiveCassandraQueryExecution { } } + if (ClassUtils.isPrimitiveOrWrapper(returnedType.getReturnedType())) { + return source; + } + if (returnedType.isInstance(source)) { return source; }