code: private void onQuery(EntityMetadata m, Client client)
      {
  
          try
          {
              // Called only in case of standalone entity.
              FilterList filter = null;
              if (translator.getFilter() != null)
              {
                  filter = new FilterList(translator.getFilter());
              }
              String[] columnAsArr = getColumnsAsArray();
  
              if (isFindKeyOnly(m, columnAsArr))
              {
                  this.handler.setFilter(new KeyOnlyFilter());
              }
  
              if (filter == null && columns != null)
              {
                  handler.readDataByRange(m.getSchema(), m.getEntityClazz(), m, translator.getStartRow(),
                          translator.getEndRow(), columnAsArr, null);
              }
              if (MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata()))
              {
                  if (filter == null)
                  {
                      // means complete scan without where clause, scan all
                      // records.
                      // findAll.
                      if (translator.isRangeScan())
                      {
                          handler.readDataByRange(m.getSchema(), m.getEntityClazz(), m, translator.getStartRow(),
                                  translator.getEndRow(), columnAsArr, null);
                      }
                      else
                      {
                          handler.readDataByRange(m.getSchema(), m.getEntityClazz(), m, null, null, columnAsArr, null);
                      }
                  }
                  else
                  {
                      // means WHERE clause is present.
                      if (translator.isRangeScan())
                      {
                          handler.readDataByRange(m.getSchema(), m.getEntityClazz(), m, translator.getStartRow(),
                                  translator.getEndRow(), columnAsArr, filter);
                      }
                      else
                      {
                          // if range query. means query over id column. create
                          // range
                          // scan method.
  
                          handler.readData(m.getSchema(), entityMetadata.getEntityClazz(), entityMetadata, null,
                                  m.getRelationNames(), filter, columnAsArr);
                      }
                  }
              }
          }
          catch (IOException ioex)
          {
              log.error("Error while executing query{} , Caused by:", ioex);
              throw new QueryHandlerException("Error while executing , Caused by:", ioex);
          }
      }
docs: Parses and translates query into HBase filter and invokes client's method
  to return list of entities.
  
  @param m
  Entity metadata
  @param client
  hbase client
  @return list of entities.