提前感谢您的帮助。
我有一个场景,我正在输入订单详细信息(包括订单对象和orderItem对象列表)。
我的目标是首先创建一个订单,然后使用生成的orderId来创建orderItems。
以下是为执行上述任务而编写的代码。
orderCreate对象
public class OrderCreate {
@JsonProperty("order")
Order order;
@JsonProperty("orderItem")
List<OrderItem> orderItem;
}
服务代码
public Observable<ResponseEntity<OrderCreate>> createOrder(OrderCreate orderCreate) {
Observable<ResponseEntity<OrderCreate>> order =
Observable.just(orderCreateDao.createOrder(orderCreate))
.<ResponseEntity<OrderCreate>> flatMap((ord) -> {
System.out.println("step1");
Observable.just(ord.getBody().getOrderItem())
.flatMapIterable(oisd -> oisd)
.flatMap(oi -> {
System.out.println("step2");
oi.setOrderId(ord.getBody().getOrder().getOrderId());
ResponseEntity<String> ordItemIs = orderCreateDao.createOrderItem(oi);
return Observable.just(ordItemIs);
});
System.out.println("step3");
return Observable.just(ord);
});
return order;
}
在上面的代码中,step1和step3正在执行,但不是step2。