Skip to content

Commit 17fc184

Browse files
ok this works for geo shapes
1 parent a0dd23e commit 17fc184

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/aot/MongoCodeBlocks.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.core.annotation.MergedAnnotation;
2929
import org.springframework.data.domain.SliceImpl;
3030
import org.springframework.data.domain.Sort.Order;
31+
import org.springframework.data.geo.Circle;
3132
import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithQuery;
3233
import org.springframework.data.mongodb.core.ExecutableRemoveOperation.ExecutableRemove;
3334
import org.springframework.data.mongodb.core.ExecutableUpdateOperation.ExecutableUpdate;
@@ -44,6 +45,7 @@
4445
import org.springframework.data.mongodb.repository.Hint;
4546
import org.springframework.data.mongodb.repository.Meta;
4647
import org.springframework.data.mongodb.repository.ReadPreference;
48+
import org.springframework.data.mongodb.repository.query.MongoParameters.MongoParameter;
4749
import org.springframework.data.mongodb.repository.query.MongoQueryExecution.DeleteExecution;
4850
import org.springframework.data.mongodb.repository.query.MongoQueryExecution.PagedExecution;
4951
import org.springframework.data.mongodb.repository.query.MongoQueryExecution.SlicedExecution;
@@ -686,7 +688,16 @@ static class QueryCodeBlockBuilder {
686688
QueryCodeBlockBuilder(AotQueryMethodGenerationContext context, MongoQueryMethod queryMethod) {
687689

688690
this.context = context;
689-
this.arguments = context.getBindableParameterNames();
691+
this.arguments = new ArrayList<>();
692+
693+
for(MongoParameter parameter : queryMethod.getParameters().getBindableParameters()) {
694+
String parameterName = context.getParameterName(parameter.getIndex());
695+
if(ClassUtils.isAssignable(Circle.class, parameter.getType())) {
696+
parameterName = "List.of(%s.getCenter(), %s.getRadius().getNormalizedValue())".formatted(parameterName, parameterName);
697+
}
698+
arguments.add(parameterName);
699+
}
700+
690701
this.queryMethod = queryMethod;
691702
}
692703

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoParameters.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ private int getTypeIndex(List<TypeInformation<?>> parameterTypes, Class<?> type,
292292
*
293293
* @author Oliver Gierke
294294
*/
295-
static class MongoParameter extends Parameter {
295+
public static class MongoParameter extends Parameter {
296296

297297
private final MethodParameter parameter;
298298
private final @Nullable Integer nearIndex;

0 commit comments

Comments
 (0)