@Override public Collection<SchemaVersionKey> findSchemasByFields(SchemaFieldQuery schemaFieldQuery) { List<QueryParam> queryParams = buildQueryParam(schemaFieldQuery); Collection<SchemaFieldInfoStorable> fieldInfos = storageManager.find(SchemaFieldInfoStorable.STORABLE_NAME_SPACE, queryParams); Collection<SchemaVersionKey> schemaVersionKeys; if (fieldInfos != null && !fieldInfos.isEmpty()) { List<Long> schemaIds = new ArrayList<>(); for (SchemaFieldInfoStorable fieldInfo : fieldInfos) { schemaIds.add(fieldInfo.getSchemaInstanceId()); } // todo get only few selected columns instead of getting the whole row. // add OR query to find items from store schemaVersionKeys = new ArrayList<>(); for (Long schemaId : schemaIds) { SchemaVersionKey schemaVersionKey = getSchemaKey(schemaId); if (schemaVersionKey != null) { schemaVersionKeys.add(schemaVersionKey); } } } else { schemaVersionKeys = Collections.emptyList(); } return schemaVersionKeys; }