GroupBy in Webflux

94 Views Asked by At

I am getting the response in java using the following code

List<Dto> Dtos = myConsignmentDao.fetchMyData(myConsignmentRequest);

if(!Dtos.isEmpty()){
    List<MyConsignmentData> myDetails  = Dtos.stream()
                    .collect(Collectors.groupingBy(Dto::getConsignmentNumber))
                    .entrySet().stream()
                    .map(myConsData -> getMyData(myConsData))
                    .collect(Collectors.toList());
        myResponse.setMyConsignments(myDetails);
        myResponse.setMyConsignments(myDetails);
        return myResponse;
    }
}

And My response is

{
    "myNumber": [
        {
            "Number": "12345",
            "consignmentItems": [
                {
                    "ItemNumber": "678954",
                    "deliveryDate": "2021-01-05 09:09:53+00"
                }
    ],
    "emailAddress": "[email protected]",
    "mobileNumber": "+91377383",
    "partyType": "Receiver",
    "creationDate": "2020-12-29"
}

I have written code using flux

Flux<MtDto> myDtos = myDao.fetchMyData(myConsignmentRequest);
myDtos.groupBy(MyConsignmentsDto::getConsignmentNumber).collectList();

Because of this I am getting only root object fields i.e myNumber, mobileNumber, email address not itemNumber and delivery date can someone help me write code using webflux.

0

There are 0 best solutions below