java如何使reactiveCrudepository@Tailable中的方法
我正在学习一些教程,介绍如何在MongoDB中为capped集合编写可裁剪的游标查询。我发现我可以通过@Tailable
实现这一点。例如,如下所示:
public interface ReactiveProductRepository extends ReactiveCrudRepository<Product, String>{
@Tailable
Flux<Product> findByName(String name);
}
这很有魅力。这也适用于@Query
注释(在复杂查询的情况下)
但是如果我想使ReactiveCrudRepository
中的一个方法成为可裁剪的呢?例如,findAll
。我能找到的唯一替代方法是在我的存储库中添加如下方法:
@Tailable
@Query("{}")
Flux<Product> findAllProducts();
那只不过是芬德尔。我想知道:是否应该为内置方法指定@Tailable
特性
有什么想法吗?有一个类似于PagingAndSortingRepository
的新接口(TailableRepository
)有意义吗
# 1 楼答案
由实际实现支持的存储库方法的行为不能改变,也不能被查询方法覆盖
您可以声明不带参数的查询方法,并为要用作入口点的所需方法提供
default
实现:另请参见here,以获取
@Tailable
无参数查询方法的示例# 2 楼答案
您可以使用findWithTailableCursorBy无需查询即可检索所有记录