diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/CassandraRepositoryFactory.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/CassandraRepositoryFactory.java index 02593f75e..ce6035ee5 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/CassandraRepositoryFactory.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/CassandraRepositoryFactory.java @@ -84,18 +84,16 @@ public class CassandraRepositoryFactory extends RepositoryFactorySupport { @Override protected Object getTargetRepository(RepositoryInformation information) { - CassandraEntityInformation entityInformation = getEntityInformation(information.getDomainType()); + CassandraEntityInformation entityInformation = getEntityInformation(information); return getTargetRepositoryViaReflection(information, entityInformation, operations); } @Override - @SuppressWarnings("unchecked") - public CassandraEntityInformation getEntityInformation(Class domainClass) { + public CassandraEntityInformation getEntityInformation(RepositoryMetadata metadata) { - CassandraPersistentEntity entity = mappingContext.getRequiredPersistentEntity(domainClass); - - return new MappingCassandraEntityInformation<>((CassandraPersistentEntity) entity, operations.getConverter()); + CassandraPersistentEntity entity = mappingContext.getRequiredPersistentEntity(metadata.getDomainType()); + return new MappingCassandraEntityInformation<>(entity, operations.getConverter()); } @Override diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactory.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactory.java index 65dc0f6d1..6c532658b 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactory.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactory.java @@ -81,7 +81,7 @@ public class ReactiveCassandraRepositoryFactory extends ReactiveRepositoryFactor @Override protected Object getTargetRepository(RepositoryInformation information) { - CassandraEntityInformation entityInformation = getEntityInformation(information.getDomainType()); + CassandraEntityInformation entityInformation = getEntityInformation(information); return getTargetRepositoryViaReflection(information, entityInformation, operations); } @@ -93,12 +93,11 @@ public class ReactiveCassandraRepositoryFactory extends ReactiveRepositoryFactor new CachingValueExpressionDelegate(valueExpressionDelegate), mappingContext)); } - @SuppressWarnings("unchecked") - public CassandraEntityInformation getEntityInformation(Class domainClass) { + @Override + public CassandraEntityInformation getEntityInformation(RepositoryMetadata metadata) { - CassandraPersistentEntity entity = mappingContext.getRequiredPersistentEntity(domainClass); - - return new MappingCassandraEntityInformation<>((CassandraPersistentEntity) entity, operations.getConverter()); + CassandraPersistentEntity entity = mappingContext.getRequiredPersistentEntity(metadata.getDomainType()); + return new MappingCassandraEntityInformation<>(entity, operations.getConverter()); } /** diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/CassandraRepositoryFactoryUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/CassandraRepositoryFactoryUnitTests.java index 1c272d80e..b16d4abc3 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/CassandraRepositoryFactoryUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/CassandraRepositoryFactoryUnitTests.java @@ -18,8 +18,6 @@ package org.springframework.data.cassandra.repository.support; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import java.io.Serializable; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -27,14 +25,16 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; + import org.springframework.data.cassandra.core.CassandraTemplate; import org.springframework.data.cassandra.core.convert.CassandraConverter; import org.springframework.data.cassandra.core.mapping.BasicCassandraPersistentEntity; import org.springframework.data.cassandra.core.mapping.CassandraMappingContext; import org.springframework.data.cassandra.domain.Person; -import org.springframework.data.cassandra.repository.query.CassandraEntityInformation; import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.repository.Repository; +import org.springframework.data.repository.core.EntityInformation; +import org.springframework.data.repository.core.support.AbstractRepositoryMetadata; /** * Unit tests for {@link CassandraRepositoryFactory}. @@ -66,8 +66,8 @@ public class CassandraRepositoryFactoryUnitTests { CassandraRepositoryFactory repositoryFactory = new CassandraRepositoryFactory(template); - CassandraEntityInformation entityInformation = repositoryFactory - .getEntityInformation(Person.class); + EntityInformation entityInformation = repositoryFactory + .getEntityInformation(AbstractRepositoryMetadata.getMetadata(MyPersonRepository.class)); assertThat(entityInformation).isInstanceOf(MappingCassandraEntityInformation.class); } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactoryUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactoryUnitTests.java index e26a670f1..b9a710d99 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactoryUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/ReactiveCassandraRepositoryFactoryUnitTests.java @@ -18,8 +18,6 @@ package org.springframework.data.cassandra.repository.support; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import java.io.Serializable; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -27,14 +25,16 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; + import org.springframework.data.cassandra.core.ReactiveCassandraTemplate; import org.springframework.data.cassandra.core.convert.CassandraConverter; import org.springframework.data.cassandra.core.mapping.BasicCassandraPersistentEntity; import org.springframework.data.cassandra.core.mapping.CassandraMappingContext; import org.springframework.data.cassandra.domain.Person; -import org.springframework.data.cassandra.repository.query.CassandraEntityInformation; import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.repository.Repository; +import org.springframework.data.repository.core.EntityInformation; +import org.springframework.data.repository.core.support.AbstractRepositoryMetadata; /** * Unit tests for {@link ReactiveCassandraRepositoryFactory}. @@ -66,8 +66,8 @@ public class ReactiveCassandraRepositoryFactoryUnitTests { ReactiveCassandraRepositoryFactory repositoryFactory = new ReactiveCassandraRepositoryFactory(template); - CassandraEntityInformation entityInformation = - repositoryFactory.getEntityInformation(Person.class); + EntityInformation entityInformation = repositoryFactory + .getEntityInformation(AbstractRepositoryMetadata.getMetadata(MyPersonRepository.class)); assertThat(entityInformation).isInstanceOf(MappingCassandraEntityInformation.class); }