Java Spring LdapTemplate是否可以流式处理结果?

Java Spring LdapTemplate是否可以流式处理结果?,java,spring-boot,java-8,java-stream,spring-ldap,Java,Spring Boot,Java 8,Java Stream,Spring Ldap,我正在尝试查询active directory中的所有person对象。有超过700000个结果,这些结果太多,无法读入列表。我当前的解决方案是使用分页来获取所有结果,但我更愿意使用Java-8流API来获取它们。不幸的是,我在LdapTemplate上没有找到任何返回流对象的方法 我知道这可以返回所有结果: 公共列表findAll(){ 返回ldapTemplate.search(“,”(objectClass=person)”,映射器); } 但我在寻找的是可以回报的东西: 公共流find

我正在尝试查询active directory中的所有person对象。有超过700000个结果,这些结果太多,无法读入
列表
。我当前的解决方案是使用分页来获取所有结果,但我更愿意使用Java-8流API来获取它们。不幸的是,我在
LdapTemplate
上没有找到任何返回
对象的方法

我知道这可以返回所有结果:

公共列表findAll(){
返回ldapTemplate.search(“,”(objectClass=person)”,映射器);
}
但我在寻找的是可以回报的东西:

公共流findAll(){
返回ldaptemplate。?????????;
}
有人能给我指出正确的方向吗?

没有,没有提供直接从搜索的元素返回
流的方法。但是,由于该方法返回一个
列表
,因此您可以使用任何
集合
的特征,该集合可通过简单的方法调用转换为

公共流findAll(){
返回ldapTemplate.search(“,”(objectClass=person)”,mapper.stream();
}

返回ldapTemplate.search(“,”(objectClass=person)”,mapper).stream()
除非您正在寻找数据存储以返回流。但是,在流式处理之前,是否仍会尝试提取所有700000多个数据元素?我真的在寻找一种方式,直接从广告商店流媒体。
public Stream<LdapPerson> findAll() {
    return ldapTemplate.search("", "(objectClass=person)", mapper).stream();
}