diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml index 86bd73ae7..37e68c6f7 100644 --- a/spring-data-mongodb/pom.xml +++ b/spring-data-mongodb/pom.xml @@ -273,6 +273,20 @@ test + + org.testcontainers + junit-jupiter + ${testcontainers} + test + + + + org.testcontainers + mongodb + ${testcontainers} + test + + jakarta.transaction jakarta.transaction-api diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java index d23e08a20..2057e2f04 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java @@ -50,11 +50,11 @@ public class DefaultIndexOperations implements IndexOperations { private static final String PARTIAL_FILTER_EXPRESSION_KEY = "partialFilterExpression"; - protected final String collectionName; - protected final QueryMapper mapper; - protected final @Nullable Class type; + private final String collectionName; + private final QueryMapper mapper; + private final @Nullable Class type; - protected final MongoOperations mongoOperations; + private final MongoOperations mongoOperations; /** * Creates a new {@link DefaultIndexOperations}. @@ -132,7 +132,7 @@ public class DefaultIndexOperations implements IndexOperations { } @Nullable - protected MongoPersistentEntity lookupPersistentEntity(@Nullable Class entityType, String collection) { + private MongoPersistentEntity lookupPersistentEntity(@Nullable Class entityType, String collection) { if (entityType != null) { return mapper.getMappingContext().getRequiredPersistentEntity(entityType); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MappingMongoJsonSchemaCreator.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MappingMongoJsonSchemaCreator.java index 6bf8343ab..a4c852ef1 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MappingMongoJsonSchemaCreator.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MappingMongoJsonSchemaCreator.java @@ -185,6 +185,10 @@ class MappingMongoJsonSchemaCreator implements MongoJsonSchemaCreator { Class rawTargetType = computeTargetType(property); // target type before conversion Class targetType = converter.getTypeMapper().getWriteTargetTypeFor(rawTargetType); // conversion target type + if((rawTargetType.isPrimitive() || ClassUtils.isPrimitiveArray(rawTargetType)) && targetType == Object.class) { + targetType = rawTargetType; + } + if (!isCollection(property) && ObjectUtils.nullSafeEquals(rawTargetType, targetType)) { if (property.isEntity() || mergeProperties.containsKey(stringPath)) { List targetProperties = new ArrayList<>(); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/VectorSearchOperation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/VectorSearchOperation.java index c7d984d47..a8a1cf892 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/VectorSearchOperation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/VectorSearchOperation.java @@ -25,7 +25,6 @@ import java.util.stream.Collectors; import org.bson.BinaryVector; import org.bson.Document; - import org.springframework.data.domain.Limit; import org.springframework.data.domain.Vector; import org.springframework.data.mongodb.core.mapping.MongoVector; @@ -38,7 +37,6 @@ import org.springframework.util.StringUtils; /** * Performs a semantic search on data in your Atlas cluster. This stage is only available for Atlas Vector Search. * Vector data must be less than or equal to 4096 dimensions in width. - *

*

Limitations

You cannot use this stage together with: *