@Override protected List findUsingLucene(EntityMetadata m, Client client) { try { BasicDBObject orderByClause = getOrderByClause(m); // find on id, so no need to add skip() [firstResult hardcoded 0] return ((MongoDBClient) client).loadData(m, createMongoQuery(m, getKunderaQuery().getFilterClauseQueue()), null, orderByClause, isSingleResult ? 1 : maxResult, 0, isCountQuery(), getKeys(m, getKunderaQuery().getResult()), getKunderaQuery().getResult()); } catch (Exception e) { log.error("Error during executing query, Caused by:", e); throw new QueryHandlerException(e); } }
@Override protected List<Object> populateEntities(EntityMetadata m, Client client) { ClientMetadata clientMetadata = ((ClientBase) client).getClientMetadata(); if (!MetadataUtils.useSecondryIndex(clientMetadata) && (clientMetadata.getIndexImplementor() != null)) { return populateUsingLucene(m, client, null, kunderaQuery.getResult()); } else { List results = onQuery(m, client); return results; } }
getColumns(getKunderaQuery().getResult(), entityMetadata)));
private OracleNoSQLQueryInterpreter translateQuery(Queue clauseQueue, EntityMetadata entityMetadata) .getResult(), entityMetadata)); interpreter.setClauseQueue(clauseQueue);
@Override protected List findUsingLucene(EntityMetadata m, Client client) { QueryTranslator translator = new QueryTranslator(); translator.translate(getKunderaQuery(), m, ((ClientBase) client).getClientMetadata()); List<String> columns = getTranslatedColumns(m, getKunderaQuery().getResult(), 1); return ((HBaseClient) client).findByRange(m.getEntityClazz(), m, translator.getStartRow(), translator .getEndRow(), columns.toArray(new String[columns.size()]), null, getKunderaQuery() .getFilterClauseQueue()); }
builder.addAggregation(aggregation); if (kunderaQuery.getResult().length == 1 || (kunderaQuery.isSelectStatement() && KunderaQueryUtils.hasGroupBy(kunderaQuery.getJpqlExpression())))
List<String> columns = getColumnList(m, metaModel, getKunderaQuery().getResult(), compoundKey); String selectQuery = setSelectQuery(columns);
/** * Populate results. * * @param m * the m * @param client * the client * @return the list */ @Override protected List populateEntities(EntityMetadata m, Client client) { ClientMetadata clientMetadata = ((ClientBase) client).getClientMetadata(); this.useLuceneOrES = !MetadataUtils.useSecondryIndex(clientMetadata); if (useLuceneOrES) { return populateUsingLucene(m, client, null, kunderaQuery.getResult()); } else { CouchDBQueryInterpreter interpreter = onTranslation(getKunderaQuery().getFilterClauseQueue(), m); return ((CouchDBClient) client).createAndExecuteQuery(interpreter); } }
@Override public Iterator iterate() { EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); if (!MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())) { throw new UnsupportedOperationException("Scrolling over hbase is unsupported for lucene queries"); } QueryTranslator translator = new QueryTranslator(); translator.translate(getKunderaQuery(), m, ((ClientBase) client).getClientMetadata()); // start with 1 as first element is alias. List<String> columns = getTranslatedColumns(m, getKunderaQuery().getResult(), 1); return new ResultIterator((HBaseClient) client, m, persistenceDelegeator, getFetchSize() != null ? getFetchSize() : this.maxResult, translator, columns); }
@Override public Iterator iterate() { EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); return new ResultIterator((MongoDBClient) client, m, createMongoQuery(m, getKunderaQuery().getFilterClauseQueue()), getOrderByClause(m), getKeys(m, getKunderaQuery().getResult()), persistenceDelegeator, getFetchSize() != null ? getFetchSize() : this.maxResult); }
boolean isNative = kunderaQuery.isNative(); if (!isNative && !MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())) { result = populateUsingLucene(m, client, result, getKunderaQuery().getResult()); result = ((CassandraClientBase) client).find(ixClause.get(isRowKeyQuery), m, false, null, isSingleResult ? 1 : this.maxResult, getColumnList(m, metaModel, getKunderaQuery().getResult(), null)); } else { result = ((CassandraEntityReader) getReader()).handleFindByRange(m, client, result, ixClause, isRowKeyQuery, getColumnList(m, metaModel, getKunderaQuery().getResult(), null), isSingleResult ? 1 : this.maxResult);
KunderaQuery query, int firstResult, int maxResults) String[] fieldsToSelect = query.getResult(); Class clazz = entityMetadata.getEntityClazz();
Assert.assertNull(kunderaQuery.getResult()); Assert.assertTrue(kunderaQuery.isUpdateClause()); Assert.assertEquals(true, kunderaQuery.isDeleteUpdate()); Assert.assertNull(kunderaQuery.getResult()); Assert.assertTrue(kunderaQuery.isUpdateClause()); Assert.assertEquals(true, kunderaQuery.isDeleteUpdate()); Assert.assertNull(kunderaQuery.getResult()); Assert.assertFalse(kunderaQuery.isUpdateClause()); Assert.assertEquals(true, kunderaQuery.isDeleteUpdate());
translator.translate(getKunderaQuery(), m, ((ClientBase) client).getClientMetadata()); List<String> columns = getTranslatedColumns(m, getKunderaQuery().getResult(), 1); Filter filter = translator.getFilter(); if (translator.rowList != null && !translator.rowList.isEmpty())
createMongoQuery(m, getKunderaQuery().getFilterClauseQueue()), m.getRelationNames(), orderByClause, isSingleResult ? 1 : maxResult, firstResult, isCountQuery(), getKeys(m, getKunderaQuery().getResult()), getKunderaQuery().getResult()); return populateUsingLucene(m, client, null, getKunderaQuery().getResult());
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; }
Assert.assertNotNull(kunderaQuery.getFrom()); Assert.assertTrue(kunderaQuery.getUpdateClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getResult()); Assert.assertEquals(PU, kunderaQuery.getPersistenceUnit()); Assert.assertNotNull(kunderaQuery.getOrdering());
Assert.assertNotNull(kunderaQuery.getFrom()); Assert.assertTrue(kunderaQuery.getUpdateClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getResult()); Assert.assertEquals(PU, kunderaQuery.getPersistenceUnit()); Assert.assertNotNull(kunderaQuery.getOrdering()); Assert.assertNotNull(kunderaQuery.getFrom()); Assert.assertTrue(kunderaQuery.getUpdateClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getResult()); Assert.assertEquals(PU, kunderaQuery.getPersistenceUnit()); Assert.assertNotNull(kunderaQuery.getOrdering());
ls = populateUsingLucene(m, client, null, getKunderaQuery().getResult());