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 


---

Reply via email to