From 3496f4b1f3025449c486460e9c5a00f729903e52 Mon Sep 17 00:00:00 2001 From: Denis Stepanov Date: Fri, 8 Nov 2024 13:16:01 +0100 Subject: [PATCH] Fix operation type of count (#3217) --- .../finders/criteria/QueryCriteriaMethodMatch.java | 2 +- .../micronaut/data/processor/sql/BuildQuerySpec.groovy | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/data-processor/src/main/java/io/micronaut/data/processor/visitors/finders/criteria/QueryCriteriaMethodMatch.java b/data-processor/src/main/java/io/micronaut/data/processor/visitors/finders/criteria/QueryCriteriaMethodMatch.java index 86290bbae7..c4bd66582c 100644 --- a/data-processor/src/main/java/io/micronaut/data/processor/visitors/finders/criteria/QueryCriteriaMethodMatch.java +++ b/data-processor/src/main/java/io/micronaut/data/processor/visitors/finders/criteria/QueryCriteriaMethodMatch.java @@ -397,7 +397,7 @@ protected MethodMatchInfo build(MethodMatchContext matchContext) { } return new MethodMatchInfo( - DataMethod.OperationType.QUERY, + getOperationType(), result.resultType(), interceptorType ) diff --git a/data-processor/src/test/groovy/io/micronaut/data/processor/sql/BuildQuerySpec.groovy b/data-processor/src/test/groovy/io/micronaut/data/processor/sql/BuildQuerySpec.groovy index 9ce59ebe2d..ddbbb1cc88 100644 --- a/data-processor/src/test/groovy/io/micronaut/data/processor/sql/BuildQuerySpec.groovy +++ b/data-processor/src/test/groovy/io/micronaut/data/processor/sql/BuildQuerySpec.groovy @@ -26,11 +26,13 @@ import io.micronaut.data.model.entities.Invoice import io.micronaut.data.model.query.QueryModel import io.micronaut.data.model.query.builder.sql.Dialect import io.micronaut.data.model.query.builder.sql.SqlQueryBuilder +import io.micronaut.data.model.runtime.StoredQuery import io.micronaut.data.processor.entity.ActivityPeriodEntity import io.micronaut.data.processor.visitors.AbstractDataSpec import io.micronaut.data.tck.entities.Author import io.micronaut.data.tck.entities.Restaurant import io.micronaut.data.tck.jdbc.entities.EmployeeGroup +import io.micronaut.inject.ExecutableMethod import spock.lang.Issue import spock.lang.PendingFeature import spock.lang.Unroll @@ -40,6 +42,7 @@ import static io.micronaut.data.processor.visitors.TestUtils.getCountQuery import static io.micronaut.data.processor.visitors.TestUtils.getDataInterceptor import static io.micronaut.data.processor.visitors.TestUtils.getDataTypes import static io.micronaut.data.processor.visitors.TestUtils.getJoins +import static io.micronaut.data.processor.visitors.TestUtils.getOperationType import static io.micronaut.data.processor.visitors.TestUtils.getParameterBindingIndexes import static io.micronaut.data.processor.visitors.TestUtils.getParameterBindingPaths import static io.micronaut.data.processor.visitors.TestUtils.getParameterExpressions @@ -601,10 +604,14 @@ interface CitiesRepository extends CrudRepository { int countDistinctByCountryRegionCountryUuid(UUID id); } """) - def query = getQuery(repository.getRequiredMethod("countDistinctByCountryRegionCountryUuid", UUID)) + + def method = repository.getRequiredMethod("countDistinctByCountryRegionCountryUuid", UUID) + def query = getQuery(method) + def op = getOperationType(method) expect: query == 'SELECT COUNT(DISTINCT(city_.`id`)) FROM `T_CITY` city_ INNER JOIN `CountryRegion` city_country_region_ ON city_.`country_region_id`=city_country_region_.`id` WHERE (city_country_region_.`countryId` = ?)' + op == DataMethod.OperationType.COUNT }