diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java index 07268cce2..a309cea0a 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java @@ -15,7 +15,6 @@ */ package org.springframework.data.mongodb.repository.support; -import java.io.Serializable; import java.lang.reflect.Method; import java.util.Optional; @@ -120,14 +119,13 @@ public class MongoRepositoryFactory extends RepositoryFactorySupport { * @since 3.2.1 */ protected RepositoryFragments getRepositoryFragments(RepositoryMetadata metadata, MongoOperations operations) { - return fragmentsContributor.contribute(metadata, getEntityInformation(metadata.getDomainType()), operations); + return fragmentsContributor.contribute(metadata, getEntityInformation(metadata), operations); } @Override protected Object getTargetRepository(RepositoryInformation information) { - MongoEntityInformation entityInformation = getEntityInformation(information.getDomainType(), - information); + MongoEntityInformation entityInformation = getEntityInformation(information); Object targetRepository = getTargetRepositoryViaReflection(information, entityInformation, operations); if (targetRepository instanceof SimpleMongoRepository repository) { @@ -143,16 +141,18 @@ public class MongoRepositoryFactory extends RepositoryFactorySupport { return Optional.of(new MongoQueryLookupStrategy(operations, mappingContext, valueExpressionDelegate)); } + @Deprecated + @Override public MongoEntityInformation getEntityInformation(Class domainClass) { - return getEntityInformation(domainClass, null); + MongoPersistentEntity entity = mappingContext.getRequiredPersistentEntity(domainClass); + return MongoEntityInformationSupport.entityInformationFor(entity, null); } - private MongoEntityInformation getEntityInformation(Class domainClass, - @Nullable RepositoryMetadata metadata) { + @Override + public MongoEntityInformation getEntityInformation(RepositoryMetadata metadata) { - MongoPersistentEntity entity = mappingContext.getRequiredPersistentEntity(domainClass); - return MongoEntityInformationSupport. entityInformationFor(entity, - metadata != null ? metadata.getIdType() : null); + MongoPersistentEntity entity = mappingContext.getRequiredPersistentEntity(metadata.getDomainType()); + return MongoEntityInformationSupport.entityInformationFor(entity, metadata.getIdType()); } /** diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java index 1b5c218ce..ce9820a4d 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java @@ -15,7 +15,6 @@ */ package org.springframework.data.mongodb.repository.support; -import java.io.Serializable; import java.lang.reflect.Method; import java.util.Optional; @@ -118,14 +117,14 @@ public class ReactiveMongoRepositoryFactory extends ReactiveRepositoryFactorySup */ @Override protected RepositoryFragments getRepositoryFragments(RepositoryMetadata metadata) { - return fragmentsContributor.contribute(metadata, getEntityInformation(metadata.getDomainType(), metadata), + return fragmentsContributor.contribute(metadata, getEntityInformation(metadata), operations); } @Override protected Object getTargetRepository(RepositoryInformation information) { - MongoEntityInformation entityInformation = getEntityInformation(information.getDomainType(), + MongoEntityInformation entityInformation = getEntityInformation( information); Object targetRepository = getTargetRepositoryViaReflection(information, entityInformation, operations); @@ -143,19 +142,18 @@ public class ReactiveMongoRepositoryFactory extends ReactiveRepositoryFactorySup return Optional.of(new MongoQueryLookupStrategy(operations, mappingContext, valueExpressionDelegate)); } + @Deprecated @Override public MongoEntityInformation getEntityInformation(Class domainClass) { - return getEntityInformation(domainClass, null); + MongoPersistentEntity entity = mappingContext.getRequiredPersistentEntity(domainClass); + return MongoEntityInformationSupport.entityInformationFor(entity, null); } - @SuppressWarnings("unchecked") - private MongoEntityInformation getEntityInformation(Class domainClass, - @Nullable RepositoryMetadata metadata) { + @Override + public MongoEntityInformation getEntityInformation(RepositoryMetadata metadata) { - MongoPersistentEntity entity = mappingContext.getRequiredPersistentEntity(domainClass); - - return new MappingMongoEntityInformation<>((MongoPersistentEntity) entity, - metadata != null ? (Class) metadata.getIdType() : null); + MongoPersistentEntity entity = mappingContext.getRequiredPersistentEntity(metadata.getDomainType()); + return MongoEntityInformationSupport.entityInformationFor(entity, metadata.getIdType()); } /** diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java index 9bc1dc78a..1d44bff5a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java @@ -408,7 +408,8 @@ public class ApplicationContextEventTests { template.save(new Person("Boba", "Fett", 40)); MongoRepositoryFactory factory = new MongoRepositoryFactory(template); - MongoEntityInformation entityInformation = factory.getEntityInformation(Person.class); + MongoEntityInformation entityInformation = factory + .getEntityInformation(Person.class); QuerydslMongoPredicateExecutor executor = new QuerydslMongoPredicateExecutor<>(entityInformation, template); executor.findOne(QPerson.person.lastname.startsWith("Fe")); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryUnitTests.java index c40f24dac..e614ef4e0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryUnitTests.java @@ -31,9 +31,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; -import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mongodb.core.MongoOperations; -import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver; @@ -41,9 +39,8 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.repository.Person; import org.springframework.data.mongodb.repository.ReadPreference; -import org.springframework.data.mongodb.repository.query.MongoEntityInformation; import org.springframework.data.repository.ListCrudRepository; -import org.springframework.data.repository.Repository; +import org.springframework.data.repository.core.EntityInformation; /** * Unit test for {@link MongoRepositoryFactory}. @@ -69,7 +66,7 @@ public class MongoRepositoryFactoryUnitTests { public void usesMappingMongoEntityInformationIfMappingContextSet() { MongoRepositoryFactory factory = new MongoRepositoryFactory(template); - MongoEntityInformation entityInformation = factory.getEntityInformation(Person.class); + EntityInformation entityInformation = factory.getEntityInformation(Person.class); assertThat(entityInformation instanceof MappingMongoEntityInformation).isTrue(); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslMongoPredicateExecutorIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslMongoPredicateExecutorIntegrationTests.java index 7d9024e2f..5f0800aba 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslMongoPredicateExecutorIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/QuerydslMongoPredicateExecutorIntegrationTests.java @@ -75,7 +75,8 @@ public class QuerydslMongoPredicateExecutorIntegrationTests { public void setup() { MongoRepositoryFactory factory = new MongoRepositoryFactory(operations); - MongoEntityInformation entityInformation = factory.getEntityInformation(Person.class); + MongoEntityInformation entityInformation = factory + .getEntityInformation(Person.class); repository = new QuerydslMongoPredicateExecutor<>(entityInformation, operations); operations.dropCollection(Person.class); @@ -246,7 +247,8 @@ public class QuerydslMongoPredicateExecutorIntegrationTests { }; MongoRepositoryFactory factory = new MongoRepositoryFactory(ops); - MongoEntityInformation entityInformation = factory.getEntityInformation(Person.class); + MongoEntityInformation entityInformation = factory + .getEntityInformation(Person.class); repository = new QuerydslMongoPredicateExecutor<>(entityInformation, ops); repository.findOne(person.firstname.contains("batman")); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java index 807b7aec2..c807a1bcb 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java @@ -111,7 +111,8 @@ public class ReactiveQuerydslMongoPredicateExecutorTests { public void setup() { ReactiveMongoRepositoryFactory factory = new ReactiveMongoRepositoryFactory(operations); - MongoEntityInformation entityInformation = factory.getEntityInformation(Person.class); + MongoEntityInformation entityInformation = factory + .getEntityInformation(Person.class); repository = new ReactiveQuerydslMongoPredicateExecutor<>(entityInformation, operations); dave = new Person("Dave", "Matthews", 42); @@ -326,7 +327,8 @@ public class ReactiveQuerydslMongoPredicateExecutorTests { }; ReactiveMongoRepositoryFactory factory = new ReactiveMongoRepositoryFactory(ops); - MongoEntityInformation entityInformation = factory.getEntityInformation(Person.class); + MongoEntityInformation entityInformation = factory + .getEntityInformation(Person.class); repository = new ReactiveQuerydslMongoPredicateExecutor<>(entityInformation, ops); repository.findOne(person.firstname.contains("batman")) //