code: @Override
      public <E> List<E> findAll(Class<E> entityClass, String[] columnsToSelect, Object... keys)
      {
          List<E> results = new ArrayList<E>();
  
          if (columnsToSelect == null)
          {
              columnsToSelect = new String[0];
          }
  
          if (keys == null)
          {
              EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass);
              MetamodelImpl metamodel = (MetamodelImpl) KunderaMetadataManager.getMetamodel(kunderaMetadata,
                      entityMetadata.getPersistenceUnit());
  
              EntityType entityType = metamodel.entity(entityMetadata.getEntityClazz());
  
              Table schemaTable = tableAPI.getTable(entityMetadata.getTableName());
              // KunderaCoreUtils.showQuery("Get all records for " +
              // entityMetadata.getTableName(), showQuery);
              Iterator<Row> rowsIter = tableAPI.tableIterator(schemaTable.createPrimaryKey(), null, null);
  
              Map<String, Object> relationMap = initialize(entityMetadata);
  
              try
              {
                  results = scrollAndPopulate(null, entityMetadata, metamodel, schemaTable, rowsIter, relationMap,
                          Arrays.asList(columnsToSelect));
              }
              catch (Exception e)
              {
                  log.error("Error while finding records , Caused By :" + e + ".");
                  throw new PersistenceException(e);
              }
          }
          else
          {
  
              for (Object key : keys)
              {
                  results.add((E) find(entityClass, key, Arrays.asList(columnsToSelect)));
              }
          }
  
          return results;
      }
docs: /*
  (non-Javadoc)
  
  @see com.impetus.kundera.client.Client#findAll(java.lang.Class,
  java.lang.String[], java.lang.Object[])