From 524417fe5fe7b9c1ff5b0347cd2da26a2eacdb3d Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 11 Feb 2022 10:45:11 +0100 Subject: [PATCH] Adapt repository to List-based interface variants. Closes #418 --- .../keyvalue/repository/KeyValueRepository.java | 5 +++-- .../QuerydslKeyValuePredicateExecutor.java | 16 +++++++++------- .../support/SimpleKeyValueRepository.java | 8 ++++---- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/springframework/data/keyvalue/repository/KeyValueRepository.java b/src/main/java/org/springframework/data/keyvalue/repository/KeyValueRepository.java index 1f3b7da..2e33bd3 100644 --- a/src/main/java/org/springframework/data/keyvalue/repository/KeyValueRepository.java +++ b/src/main/java/org/springframework/data/keyvalue/repository/KeyValueRepository.java @@ -15,13 +15,14 @@ */ package org.springframework.data.keyvalue.repository; -import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.data.repository.ListCrudRepository; +import org.springframework.data.repository.ListPagingAndSortingRepository; /** * @author Christoph Strobl * @param * @param */ -public interface KeyValueRepository extends PagingAndSortingRepository { +public interface KeyValueRepository extends ListCrudRepository, ListPagingAndSortingRepository { } diff --git a/src/main/java/org/springframework/data/keyvalue/repository/support/QuerydslKeyValuePredicateExecutor.java b/src/main/java/org/springframework/data/keyvalue/repository/support/QuerydslKeyValuePredicateExecutor.java index e51656a..b86f1d4 100644 --- a/src/main/java/org/springframework/data/keyvalue/repository/support/QuerydslKeyValuePredicateExecutor.java +++ b/src/main/java/org/springframework/data/keyvalue/repository/support/QuerydslKeyValuePredicateExecutor.java @@ -31,6 +31,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; +import org.springframework.data.keyvalue.core.IterableConverter; import org.springframework.data.keyvalue.core.KeyValueOperations; import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.mapping.PersistentProperty; @@ -39,6 +40,7 @@ import org.springframework.data.mapping.model.EntityInstantiators; import org.springframework.data.projection.ProjectionFactory; import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.querydsl.EntityPathResolver; +import org.springframework.data.querydsl.ListQuerydslPredicateExecutor; import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.data.querydsl.SimpleEntityPathResolver; import org.springframework.data.repository.core.EntityInformation; @@ -61,13 +63,13 @@ import com.querydsl.core.types.dsl.PathBuilder; * @author Mark Paluch * @since 2.6 */ -public class QuerydslKeyValuePredicateExecutor implements QuerydslPredicateExecutor { +public class QuerydslKeyValuePredicateExecutor implements ListQuerydslPredicateExecutor { private static final EntityPathResolver DEFAULT_ENTITY_PATH_RESOLVER = SimpleEntityPathResolver.INSTANCE; private final MappingContext, ? extends PersistentProperty> context; private final PathBuilder builder; - private final Supplier> findAll; + private final Supplier> findAll; private final EntityInformation entityInformation; private final ProjectionFactory projectionFactory; private final EntityInstantiators entityInstantiators = new EntityInstantiators(); @@ -105,7 +107,7 @@ public class QuerydslKeyValuePredicateExecutor implements QuerydslPredicateEx EntityPath path = resolver.createPath(entityInformation.getJavaType()); this.builder = new PathBuilder<>(path.getType(), path.getMetadata()); this.entityInformation = entityInformation; - findAll = () -> operations.findAll(entityInformation.getJavaType()); + findAll = () -> IterableConverter.toList(operations.findAll(entityInformation.getJavaType())); } @Override @@ -121,7 +123,7 @@ public class QuerydslKeyValuePredicateExecutor implements QuerydslPredicateEx } @Override - public Iterable findAll(Predicate predicate) { + public List findAll(Predicate predicate) { Assert.notNull(predicate, "Predicate must not be null!"); @@ -129,7 +131,7 @@ public class QuerydslKeyValuePredicateExecutor implements QuerydslPredicateEx } @Override - public Iterable findAll(Predicate predicate, OrderSpecifier... orders) { + public List findAll(Predicate predicate, OrderSpecifier... orders) { Assert.notNull(predicate, "Predicate must not be null!"); Assert.notNull(orders, "OrderSpecifiers must not be null!"); @@ -141,7 +143,7 @@ public class QuerydslKeyValuePredicateExecutor implements QuerydslPredicateEx } @Override - public Iterable findAll(Predicate predicate, Sort sort) { + public List findAll(Predicate predicate, Sort sort) { Assert.notNull(predicate, "Predicate must not be null!"); Assert.notNull(sort, "Sort must not be null!"); @@ -171,7 +173,7 @@ public class QuerydslKeyValuePredicateExecutor implements QuerydslPredicateEx } @Override - public Iterable findAll(OrderSpecifier... orders) { + public List findAll(OrderSpecifier... orders) { Assert.notNull(orders, "OrderSpecifiers must not be null!"); diff --git a/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java b/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java index b9eb182..0d3b9ea 100644 --- a/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java +++ b/src/main/java/org/springframework/data/keyvalue/repository/support/SimpleKeyValueRepository.java @@ -77,7 +77,7 @@ public class SimpleKeyValueRepository implements KeyValueRepository Iterable saveAll(Iterable entities) { + public List saveAll(Iterable entities) { Assert.notNull(entities, "The given Iterable of entities must not be null!"); @@ -109,7 +109,7 @@ public class SimpleKeyValueRepository implements KeyValueRepository findAllById(Iterable ids) { + public List findAllById(Iterable ids) { Assert.notNull(ids, "The given Iterable of id's must not be null!"); @@ -167,11 +167,11 @@ public class SimpleKeyValueRepository implements KeyValueRepository findAll(Sort sort) { + public List findAll(Sort sort) { Assert.notNull(sort, "Sort must not be null!"); - return operations.findAll(sort, entityInformation.getJavaType()); + return IterableConverter.toList(operations.findAll(sort, entityInformation.getJavaType())); } @Override