gpt4 book ai didi

java - 如何在 ReactiveCrudRepository @Tailable 中创建方法

转载 作者:行者123 更新时间:2023-11-30 06:19:39 28 4
gpt4 key购买 nike

我正在研究一些关于如何为 MongoDB 中的上限集合编写 Tailable 游标查询的教程。我发现我可以使用 @Tailable 来实现这一点。例如,像这样:

public interface ReactiveProductRepository extends ReactiveCrudRepository<Product, String>{

@Tailable
Flux<Product> findByName(String name);
}

这就像一个魅力。这也适用于 @Query 注释(在复杂查询的情况下)。

但是如果我想将 ReactiveCrudRepository 中的方法之一设置为 Tailable 该怎么办?例如,findAll。我能找到的唯一替代方法是在我的存储库中添加这样的方法:

  @Tailable
@Query("{}")
Flux<Product> findAllProducts();

这只不过是findAll。我想知道:难道不应该有一个选项来为内置方法指定 @Tailable 功能吗?

有什么想法吗?拥有一个类似于 PagingAndSortingRepository 的新接口(interface) (TailableRepository) 是否有意义。

最佳答案

由实际实现支持的存储库方法不能更改其行为或被查询方法覆盖。

您可以声明不带参数的查询方法,并为要用作入口点的所需方法提供默认实现:

public interface LoginEventRepository extends ReactiveCrudRepository<LoginEvent, String> {

@Tailable
Flux<LoginEvent> findPeopleBy();

@Override
default Flux<LoginEvent> findAll(){
return findPeopleBy();
}
}

另请参阅here有关 @Tailable 无参数查询方法的示例。

关于java - 如何在 ReactiveCrudRepository @Tailable 中创建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48445037/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com