docs: @Override
    public final T process(
      final Map<String, Object> pAddParam,
        final T pEntity, final IRequestData pRequestData) throws Exception {
      T entity = this.srvOrm.retrieveEntity(pAddParam, pEntity);
      if (entity.getIdDatabaseBirth() != getSrvOrm().getIdDatabase()) {
          throw new ExceptionWithCode(ExceptionWithCode.WRONG_PARAMETER,
            "can_not_change_foreign_src");
      }
      entity.setIsNew(false);
      pRequestData.setAttribute("entity", entity);
      pRequestData.setAttribute("mngUvds", this.mngUvdSettings);
      pRequestData.setAttribute("srvOrm", this.srvOrm);
      pRequestData.setAttribute("srvDate", this.srvDate);
      pRequestData.setAttribute("hldCnvFtfsNames",
        this.fieldConverterNamesHolder);
      pRequestData.setAttribute("fctCnvFtfs", this.convertersFieldsFatory);
      // owned lists:
      String ownedLists = mngUvdSettings.lazClsSts(pEntity.getClass())
        .get("ownedLists");
      if (ownedLists != null) {
        Map<Class<?>, List<Object>> ownedListsMap =
          new LinkedHashMap<Class<?>, List<Object>>();
        pRequestData.setAttribute("ownedListsMap", ownedListsMap);
        Set<String> ownedListsSet = utlProperties
          .evalPropsStringsSet(ownedLists);
        for (String className : ownedListsSet) {
          Class<?> entityFolClass = Class.forName(className);
          @SuppressWarnings("unchecked")
          IFillerObjectFields<Object> fillerEfol = (IFillerObjectFields<Object>)
            this.fillersFieldsFactory.lazyGet(pAddParam, entityFolClass);
          // find owner field name:
          String ownerFieldName = null;
          TableSql tableSqlEfol = this.srvOrm.getTablesMap()
            .get(entityFolClass.getSimpleName());
          for (Map.Entry<String, FieldSql> entry : tableSqlEfol
            .getFieldsMap().entrySet()) {
            if (pEntity.getClass().getSimpleName()
              .equals(entry.getValue().getForeignEntity())) {
              ownerFieldName = entry.getKey();
            }
          }
          if (ownerFieldName == null) {
            throw new ExceptionWithCode(ExceptionWithCode.SOMETHING_WRONG,
              "Can't find owner field name for class/class from owned list: "
                + pEntity.getClass() + "/" + entityFolClass);
          }
          @SuppressWarnings("unchecked")
          IFactorySimple<Object> entFolFac = (IFactorySimple<Object>)
            this.entitiesFactoriesFatory.lazyGet(pAddParam, entityFolClass);
          Object entityFol = entFolFac.create(pAddParam);
          fillerEfol.fill(pAddParam, entityFol, entity, ownerFieldName);
          String ooids = entityFolClass.getSimpleName() + ownerFieldName
            + "deepLevel";
          pAddParam.put(ooids, 1); //only ID
          List<Object> entities = this.srvOrm
            .retrieveListForField(pAddParam, entityFol, ownerFieldName);
          for (Object efol : entities) {
            fillerEfol.fill(pAddParam, efol, entity, ownerFieldName);
          }
          pAddParam.remove(ooids);
          ownedListsMap.put(entityFolClass, entities);
        }
      }
      return entity;
    }