ReactiveCouchbaseSortingRepository не разрешает параметр Pageable в поисковом запросе - PullRequest
3 голосов
/ 25 мая 2019

ReactiveCouchbaseSortingRepository в пружинных данных для реактивной системы couchbase, не разрешающей параметр Pageable в find запросе

У меня есть pojo с именем MyEntity, как показано ниже. Когда я запускаю второй запрос поиска ниже без Pageable, он корректно возвращается с ответом, но когда я запускаю с параметром Pageable, он выдает ниже исключения при инициализации приложения.

Caused by: java.lang.IllegalStateException: Method has to have one of the following return types! [interface org.springframework.data.domain.Page, interface java.util.List, interface org.springframework.data.domain.Slice]

Хотя он должен работать, как показано в справочной документации, а также здесь для MongoDb

как применить-пагинацию-в-реактивных-пружинных данные

public class MyEntity {
    @Id
    private String id;
    private Instant effectiveDateTime;
    private String createdBy;
    private Instant createdDateTime;
}

public interface EntityRepository extends ReactiveCouchbaseSortingRepository<MyEntity, String> {

Flux<MyEntity> findByEffectiveDateTimeBetween(Instant start, Instant end, Pageable pageable) ;
Flux<MyEntity> findByEffectiveDateTimeBetween(Instant start, Instant end) ;
}





Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'EntityRepository': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Method has to have one of the following return types! [interface org.springframework.data.domain.Page, interface java.util.List, interface org.springframework.data.domain.Slice]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1745) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]

caused by: java.lang.IllegalStateException: Method has to have one of the following return types! [interface org.springframework.data.domain.Page, interface java.util.List, interface org.springframework.data.domain.Slice]
    at org.springframework.data.repository.query.QueryMethod.assertReturnTypeAssignable(QueryMethod.java:301) ~[spring-data-commons-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.springframework.data.repository.query.QueryMethod.<init>(QueryMethod.java:86) ~[spring-data-commons-2.1.4.RELEASE.jar:2.1.4.RELEASE]
    at org.springframework.data.couchbase.repository.query.CouchbaseQueryMethod.<init>(CouchbaseQueryMethod.java:47) ~[spring-data-couchbase-3.1.4.RELEASE.jar:3.1.4.RELEASE]
    at org.springframework.data.couchbase.repository.support.ReactiveCouchbaseRepositoryFactory$CouchbaseQueryLookupStrategy.resolveQuery(ReactiveCouchbaseRepositoryFactory.java:222) ~[spring-data-couchbase-3.1.4.RELEASE.jar:3.1.4.RELEASE]

При дальнейшем чтении это похоже на ошибку в весенней библиотеке общих данных. потому что класс QueryExecutionConverters.java в данных источника, из которого он проверяет тип возвращаемого значения, не содержит Flux или какого-либо реактивного типа в своем списке.

Может ли кто-нибудь подтвердить, была ли ошибка в документации или ошибка кода в общедоступных данных пружины.

ALLOWED_PAGEABLE_TYPES.add(Slice.class);
ALLOWED_PAGEABLE_TYPES.add(Page.class);
ALLOWED_PAGEABLE_TYPES.add(List.class);
...