docs: public final <T extends AItemPlace<I, ?>, I extends IHasIdLongVersionName> void updateForItemPlaceList(
      final Map<String, Object> pReqVars, final List<T> pItemPlaceLst,
        final SettingsAdd pSettingsAdd, final GoodsInListLuv pGoodsInListLuv, final EShopItemType pItemType) throws Exception {
      if (pItemPlaceLst.size() == 0) {
        //Beige ORM may return empty list
        return;
      }
      int steps = pItemPlaceLst.size() / pSettingsAdd.getRecordsPerTransaction();
      int currentStep = 1;
      Long lastUpdatedVersion = null;
      do {
        try {
          this.srvDatabase.setIsAutocommit(false);
          this.srvDatabase.setTransactionIsolation(ISrvDatabase.TRANSACTION_READ_UNCOMMITTED);
          this.srvDatabase.beginTransaction();
          int stepLen = Math.min(pItemPlaceLst.size(), currentStep * pSettingsAdd.getRecordsPerTransaction());
          for (int i = (currentStep - 1) * pSettingsAdd.getRecordsPerTransaction(); i < stepLen; i++) {
            T itemPlace = pItemPlaceLst.get(i);
            updateForItemPlace(pReqVars, itemPlace,  pItemType);
            lastUpdatedVersion = itemPlace.getItsVersion();
          }
          if (pItemType == EShopItemType.GOODS) {
            pGoodsInListLuv.setGoodsAvailableLuv(lastUpdatedVersion);
          } else if (pItemType == EShopItemType.SERVICE) {
            pGoodsInListLuv.setServicePlaceLuv(lastUpdatedVersion);
          } else if (pItemType == EShopItemType.SEGOODS) {
            pGoodsInListLuv.setSeGoodPlaceLuv(lastUpdatedVersion);
          } else if (pItemType == EShopItemType.SESERVICE) {
            pGoodsInListLuv.setSeServicePlaceLuv(lastUpdatedVersion);
          } else {
            throw new Exception("NEI for " + pItemType);
          }
          getSrvOrm().updateEntity(pReqVars, pGoodsInListLuv);
          this.srvDatabase.commitTransaction();
        } catch (Exception ex) {
          if (!this.srvDatabase.getIsAutocommit()) {
            this.srvDatabase.rollBackTransaction();
          }
          throw ex;
        } finally {
          this.srvDatabase.releaseResources();
        }
      } while (currentStep++ < steps);
    }