Github user ShruthiRajaram commented on a diff in the pull request: https://github.com/apache/fineract/pull/465#discussion_r206853888 --- Diff: fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java --- @@ -304,6 +319,32 @@ private boolean anyChangeInCriticalFloatingRateLinkedParams(JsonCommand command, return charges; } + private List<Rate> assembleListOfProductRates(final JsonCommand command) { + + final List<Rate> rates = new ArrayList<>(); + + if (command.parameterExists("rates")) { + final JsonArray ratesArray = command.arrayOfParameterNamed("rates"); + if (ratesArray != null) { + for (int i = 0; i < ratesArray.size(); i++) { + + final JsonObject jsonObject = ratesArray.get(i).getAsJsonObject(); + if (jsonObject.has("id")) { + final Long id = jsonObject.get("id").getAsLong(); + + final Rate rate = this.rateRepository.findOne(id); --- End diff -- Instead of repeated calls to DB, can you try using single query with in clause and validate
---