docs: @Override
    public final <T> List<T> retrieveListByQuery(
      final Map<String, Object> pAddParam,
        final Class<T> pEntityClass,
          final String pQuery) throws Exception {
      if (pQuery == null) {
        throw new ExceptionWithCode(ExceptionWithCode.WRONG_PARAMETER,
          "param_null_not_accepted");
      }
      List<T> result = new ArrayList<T>();
      IRecordSet<RS> recordSet = null;
      try {
        recordSet = getSrvDatabase().retrieveRecords(pQuery);
        if (recordSet.moveToFirst()) {
          do {
            result.add(retrieveEntity(pAddParam, pEntityClass, recordSet));
          } while (recordSet.moveToNext());
        }
      } finally {
        if (recordSet != null) {
          recordSet.close();
        }
      }
      return result;
    }