我有一个返回通量的存储库,并希望将结果设置为另一个需要列表的对象。有没有其他方法可以在不阻塞的情况下以列表形式获取结果?
该块正在工作,但需要很长时间。
public class FluxToListTest {
@Autowired PostRepository postRepository;
public void setUserPosts(User user) {
user.setPostList(postRepository.findAllByOrderId(user.getId()).collectList().block());
}
}
interface PostRepository {
Flux<Post> findAllByOrderId(final UUID userId);
}
@Data
class User {
UUID id;
List<Post> postList;
}
class Post {
UUID id;
String content;
}
简而言之 -NO。
你不需要提取List
from Flux
。
如果您已经开始使用 Reactor Streams - 请继续使用。
试试这个代码:
public void setUserPosts(User user) {
postRepository.findAllByOrderId(user.getId())
.collectList()
.doOnNext(user::setPostList)// (1)
.subscribe(); // (2)
}
- 如果您设置操作被阻止,请使用发布于/订阅以避免阻塞所有流。
- 它开始你的流表演
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)