code: @Override
      public <E> List<E> getColumnsById(String schemaName, String joinTableName, String joinColumnName,
              String inverseJoinColumnName, Object parentId, Class columnJavaType)
      {
          List<E> foreignKeys = new ArrayList<E>();
  
          DBCollection dbCollection = mongoDb.getCollection(joinTableName);
          BasicDBObject query = new BasicDBObject();
  
          query.put(joinColumnName, MongoDBUtils.populateValue(parentId, parentId.getClass()));
          KunderaCoreUtils.printQuery("Find by Id:" + query, showQuery);
          DBCursor cursor = dbCollection.find(query);
          DBObject fetchedDocument = null;
  
          while (cursor.hasNext())
          {
              fetchedDocument = cursor.next();
              Object foreignKey = fetchedDocument.get(inverseJoinColumnName);
              foreignKey = MongoDBUtils.getTranslatedObject(foreignKey, foreignKey.getClass(), columnJavaType);
              foreignKeys.add((E) foreignKey);
          }
          return foreignKeys;
      }
docs: /*
  (non-Javadoc)
  
  @see com.impetus.kundera.client.Client#getColumnsById(java.lang.String,
  java.lang.String, java.lang.String, java.lang.String, java.lang.Object,
  java.lang.Class)