【发布时间】:2019-12-05 07:03:54
【问题描述】:
我正在使用响应式 mongodb 开发简单的 spring webflux 演示应用程序,我想按名称读取 Employee 的所有数据,除了包含名称字段“joe”、“Sara”、“JOE”、“SARA”,我有以下代码:
//仓库接口
public interface EmployeeRepository extends ReactiveMongoRepository<Employee, String>{
Flux<Employee> findAllByName(String name);
}
//服务类
public class EmplyeeService
{
private EmployeeRepository employeeRepository;
public Flux<Employee> findAllByOrganizationName(String name)
{
return employeeRepository.findAllByName(name);
}
public Flux<String> getAllNameExceptSome(String name)
{
Employee emp1=new Employee();
List<Flux<Employee>> emp=Arrays.asList(employeeRepository.findAllByName(name));
Flux<Flux<Employee>> emp2=Flux.fromIterable(emp)
.filter(name->name.equalsIgnoreCase("joe"));
return emp2;
}
}
【问题讨论】:
-
这是阻塞代码而不是响应式代码。
findAllByName应该返回一个Flux,您直接过滤并返回。 -
@M.Deinum,感谢您的回复,现在我们有了响应式代码。
-
你的问题是什么?
-
@firegloves,上面的代码不像我想要的那样工作,比如从 mongo 集合中获取名称,除了上面问题中描述的一些名称。
标签: spring-boot spring-webflux