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);