code: public <E> List<E> findByQuery(Class<E> entityClass, EntityMetadata metadata, Filter f, Queue filterClausequeue,
              String... columns)
      {
          EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass);
          List<String> relationNames = entityMetadata.getRelationNames();
          // columnFamily has a different meaning for HBase, so it won't be used
          // here
          String tableName = entityMetadata.getSchema();
          List results = null;
  
          FilterList filter = new FilterList();
          if (f != null)
          {
              filter.addFilter(f);
          }
          if (isFindKeyOnly(metadata, columns))
          {
              columns = null;
              filter.addFilter(new KeyOnlyFilter());
          }
  
          try
          {
              results = fetchEntity(entityClass, null, entityMetadata, relationNames, tableName, results, filter,
                      filterClausequeue, columns);
          }
          catch (IOException ioex)
          {
              log.error("Error during find by query, Caused by: .", ioex);
              throw new KunderaException(ioex);
          }
          return results != null ? results : new ArrayList();
      }
docs: Method to find entities using JPQL(converted into FilterList.)
  
  @param <E>
  parameterized entity class.
  @param entityClass
  entity class.
  @param metadata
  entity metadata.
  @param f
  the f
  @param filterClausequeue
  the filter clausequeue
  @param columns
  the columns
  @return list of entities.