@Override public Iterator iterate() { if (kunderaQuery.isNative()) { throw new UnsupportedOperationException("Iteration not supported over native queries"); } EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); externalProperties = ((CassandraClientBase) client).getExternalProperties(); if (!MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())) { throw new UnsupportedOperationException("Scrolling over cassandra is unsupported for lucene queries"); } return new ResultIterator(this, m, persistenceDelegeator.getClient(m), this.getReader(), getFetchSize() != null ? getFetchSize() : this.maxResult, kunderaMetadata); }
protected List findUsingLucene(EntityMetadata m, Client client) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel(m.getPersistenceUnit()); boolean useInvertedIndex = CassandraIndexHelper.isInvertedIndexingApplicable(m, MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())); Map<Boolean, List<IndexClause>> ixClause = prepareIndexClause(m, useInvertedIndex); List<Object> result = new ArrayList<Object>(); if (((CassandraClientBase) client).isCql3Enabled(m)) { result = ((CassandraClientBase) client).executeQuery(m.getEntityClazz(), m.getRelationNames(), false, onQueryOverCQL3(m, client, metaModel, m.getRelationNames())); } else { result = ((CassandraEntityReader) getReader()).handleFindByRange(m, client, result, ixClause, true, getColumnList(m, metaModel, getKunderaQuery().getResult(), null), isSingleResult ? 1 : this.maxResult); } return result; }
Map<Boolean, List<IndexClause>> ixClause = prepareIndexClause(m, useInvertedIndex); if (useInvertedIndex && !getKunderaQuery().getFilterClauseQueue().isEmpty()) { result = (List) ((CassandraEntityReader) getReader()).readFromIndexTable(m, client, ixClause); } else { boolean isRowKeyQuery = ixClause.keySet().iterator().next(); } else { result = ((CassandraEntityReader) getReader()).handleFindByRange(m, client, result, ixClause, isRowKeyQuery, getColumnList(m, metaModel, getKunderaQuery().getResult(), null), isSingleResult ? 1 : this.maxResult);
@Override public Iterator iterate() { EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); externalProperties = ((CassandraClientBase) client).getExternalProperties(); if (!MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())) { throw new UnsupportedOperationException("Scrolling over hbase is unsupported for lucene queries"); } return new ResultIterator(this, m, persistenceDelegeator.getClient(m), this.getReader(), getFetchSize() != null ? getFetchSize() : this.maxResult); }
if (useInvertedIndex && !getKunderaQuery().getFilterClauseQueue().isEmpty()) result = (List) ((CassandraEntityReader) getReader()).readFromIndexTable(m, client, ixClause); result = ((CassandraEntityReader) getReader()).handleFindByRange(m, client, result, ixClause, isRowKeyQuery, getColumnList(m, getKunderaQuery().getResult(), null), isSingleResult ? 1 : this.maxResult);