I have been asked to create a Proof Of Concept on an Online Shopping Application. This application exposes an Flux API in spring boot.
class UserMasterInfo{
private List<Orders> orderHistory;
private List<Address> userAddresses;
private List<Review> userReviews;
private List<PaymentMode> paymentModes;
private Subscription superSubscription;
private User userDetail;
//getters and setters
//overridden tostring
}
My stored procedure returns 6 different cursor containing data for each of the attributes in UserMasterInfo. I did some basic ground work and map one ref cursor. But I couldnt understand how to map rest of the refcursors. Some help on this will be really useful.
public class DataRepository{
@Autowired
private R2dbcEntityTemplate template;
@Autowired
private DatabaseClient databaseClient;
@Autowired
private MappingR2dbcConverter converter;
public Flux<UserMasterInfo> getUserMasterInfo(){
String query = "stored proc query";
return databaseClient.inConnectionMany(
connection -> {
Statement statement = connection.createStatement(query)
.bind("order_hist",Parameters.out(OracleR2dbcTypes.REF_CURSOR));
return Flux.from(statement.execute())
.flatMap(result -> result
.map(outParameters -> outParameters.get("order_hist")))
.cast(Result.class)
.flatMap(result -> result.map(
row -> converter.read(Orders.class,(Row) row)));
});
}
}
Anyone know how to do multi cursor mapping?