我正在尝试使用spring-data-couchbase
进行分页和排序,但似乎org.springframework.data.couchbase.repository
仅CouchbaseRepository
正在扩展CrudRepository<T,ID>
。
没有从PagingAndSortingRepository<T,ID>
延伸的界面。
我确实为问题设置跳过和限制实施了一个非传统的解决方案。但是想要获得总页数,这是此解决方案所不具备的。
似乎Page<T>
确实有.getTotalPages()
答案 0 :(得分:0)
目前没有Spring Data Couchbase的分页支持,您需要使用较低级别的API,这基本上是Couchbase的Java SDK的第一个版本。
答案 1 :(得分:0)
由于Spring-Data-Couchbase 2.0.x支持PagingAndSortingRepository
分页和排序数据。
界面定义:
public interface PagingAndSortingRepository<T, ID extends Serializable>
extends CrudRepository<T, ID> {
Iterable<T> findAll(Sort sort);
Page<T> findAll(Pageable pageable);
}
分页项目示例:
public interface ProjectRepository extends PagingAndSortingRepository<Project, String> {
Page<Project> findByName(String name, Pageable pageable);
}
答案 2 :(得分:0)
4年以来,令人遗憾的是仍然没有ReactiveCouchbasePagingAndSortingRepository。 相反,我将使用索引,并选择offset参数和count的组合来解决此问题。 https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/aggregatefun.html#countn https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/offset.html
@Query("#{#n1ql.selectEntity} where #{#n1ql.filter} ORDER BY name LIMIT $1 OFFSET $2;")
Flux<Location> findPage(int limit, int offset);
如果他们确实添加了它,它应该显示在此处(或在更高版本中)