docs: @Override
    public final <T> void insertEntity(final Map<String, Object> pAddParam,
      final T pEntity) throws Exception {
      ColumnsValues columnsValues = evalColumnsValues(pAddParam, pEntity);
      columnsValues.getLongsMap().remove(ISrvOrm.VERSIONOLD_NAME);
      Long result = getSrvDatabase().executeInsert(pEntity.getClass()
        .getSimpleName().toUpperCase(), columnsValues);
      String[] idName = columnsValues.getIdColumnsNames();
      if (idName.length == 1) { // if non-composite PK
        Field fieldId = getUtlReflection()
                  .retrieveField(pEntity.getClass(), idName[0]);
        fieldId.setAccessible(true);
        Object idValue = fieldId.get(pEntity);
        if (idValue == null) {
          //It must be an autogenerated Integer or Long ID
          if (fieldId.getType() == Long.class) {
            fieldId.set(pEntity, result);
          } else if (fieldId.getType() == Integer.class) {
            fieldId.set(pEntity, result.intValue());
          } else {
            String msg = "There is no rule to fill ID "
              + fieldId.getName()
                + " of " + fieldId.getType() + " in "
                  + pEntity;
            throw new ExceptionWithCode(ExceptionWithCode.NOT_YET_IMPLEMENTED,
              msg);
          }
        }
      }
    }