我正在从 DB2/400 表中获取所有行并在响应式请求中返回它们
我的服务看起来像这样
package example.y2.api.service.impl;
import java.util.stream.Stream;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import example.y2.api.entity.impl.Y2ModelListEntry;
import example.y2.api.mapper.CoreMapper;
import example.y2.api.model.impl.ObjectListEntry;
import io.smallrye.mutiny.Multi;
@ApplicationScoped
public class Y2ListServiceAsync {
@Inject
CoreMapper mapper;
public Multi<ObjectListEntry> asyncAll() {
return Multi.createFrom().items(getStream()).map(this::map);
}
private Stream<Y2ModelListEntry> getStream() {
return Y2ModelListEntry.streamAll();
}
private ObjectListEntry map(Y2ModelListEntry y) {
ObjectListEntry listEntry = new ObjectListEntry();
mapper.directMap(listEntry, y);
return listEntry;
}
}
Panache 流应该包装在 @Transactional 方法中。我试图了解在将流与 Multi 一起使用时是否可以包装 Panache 流。
这是我第一次尝试编写反应式应用程序。