diff --git a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensions.kt b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensions.kt index b7eb99e35..670c69164 100644 --- a/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensions.kt +++ b/spring-data-mongodb/src/main/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensions.kt @@ -217,37 +217,46 @@ inline fun ReactiveMongoOperations.findDistin * Extension for [ReactiveMongoOperations.aggregate] leveraging reified type parameters. * * @author Wonwoo Lee - * @since 3.1 + * @since 3.1.4 */ -inline fun ReactiveMongoOperations.aggregate(aggregation: TypedAggregation<*>, collectionName: String): Flux = - this.aggregate(aggregation, collectionName, T::class.java) +inline fun ReactiveMongoOperations.aggregate( + aggregation: TypedAggregation<*>, + collectionName: String +): Flux = + this.aggregate(aggregation, collectionName, O::class.java) /** * Extension for [ReactiveMongoOperations.aggregate] leveraging reified type parameters. * * @author Wonwoo Lee - * @since 3.1 + * @since 3.1.4 */ -inline fun ReactiveMongoOperations.aggregate(aggregation: TypedAggregation<*>): Flux = - this.aggregate(aggregation, T::class.java) +inline fun ReactiveMongoOperations.aggregate(aggregation: TypedAggregation<*>): Flux = + this.aggregate(aggregation, O::class.java) /** * Extension for [ReactiveMongoOperations.aggregate] leveraging reified type parameters. * * @author Wonwoo Lee - * @since 3.1 + * @author Mark Paluch + * @since 3.1.4 */ -inline fun ReactiveMongoOperations.aggregate(aggregation: Aggregation, entityClass: KClass<*>): Flux = - this.aggregate(aggregation, entityClass.java, T::class.java) +inline fun ReactiveMongoOperations.aggregate( + aggregation: Aggregation +): Flux = + this.aggregate(aggregation, I::class.java, O::class.java) /** * Extension for [ReactiveMongoOperations.aggregate] leveraging reified type parameters. * * @author Wonwoo Lee - * @since 3.1 + * @since 3.1.4 */ -inline fun ReactiveMongoOperations.aggregate(aggregation: Aggregation, collectionName: String): Flux = - this.aggregate(aggregation, collectionName, T::class.java) +inline fun ReactiveMongoOperations.aggregate( + aggregation: Aggregation, + collectionName: String +): Flux = + this.aggregate(aggregation, collectionName, O::class.java) /** * Extension for [ReactiveMongoOperations.geoNear] leveraging reified type parameters. diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensionsTests.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensionsTests.kt index 47c394055..7ad29572b 100644 --- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensionsTests.kt +++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/ReactiveMongoOperationsExtensionsTests.kt @@ -30,6 +30,7 @@ import reactor.core.publisher.Mono * @author Sebastien Deleuze * @author Christoph Strobl * @author Mark Paluch + * @author Wonwoo Lee */ class ReactiveMongoOperationsExtensionsTests { @@ -607,10 +608,17 @@ class ReactiveMongoOperationsExtensionsTests { val query = mockk() operations.findDistinct(query, "field", First::class) - verify { operations.findDistinct(query, "field", First::class.java, String::class.java) } + verify { + operations.findDistinct( + query, + "field", + First::class.java, + String::class.java + ) + } } - @Test + @Test // #893 fun `aggregate(TypedAggregation, String, KClass) should call java counterpart`() { val aggregation = mockk>() @@ -619,7 +627,7 @@ class ReactiveMongoOperationsExtensionsTests { verify { operations.aggregate(aggregation, "foo", First::class.java) } } - @Test + @Test // #893 fun `aggregate(TypedAggregation, KClass) should call java counterpart`() { val aggregation = mockk>() @@ -628,16 +636,22 @@ class ReactiveMongoOperationsExtensionsTests { verify { operations.aggregate(aggregation, First::class.java) } } - @Test + @Test // #893 fun `aggregate(Aggregation, KClass) should call java counterpart`() { val aggregation = mockk() - operations.aggregate(aggregation, String::class) - verify { operations.aggregate(aggregation, String::class.java, First::class.java) } + operations.aggregate(aggregation) + verify { + operations.aggregate( + aggregation, + String::class.java, + First::class.java + ) + } } - @Test + @Test // #893 fun `aggregate(Aggregation, String) should call java counterpart`() { val aggregation = mockk()