@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); } }
/** * Initializes reader with conditions and filter in case for JPA/Named query * only! * */ private void initializeReader() { boolean isNative = kunderaQuery.isNative(); if (!isNative) { getReader().setConditions(getKunderaQuery().getFilterClauseQueue()); getReader().setFilter(getKunderaQuery().getFilter()); } }
@Override protected int onExecuteUpdate() { if (kunderaQuery.isDeleteUpdate()) { List result = getResultList(); return result != null ? result.size() : 0; } return 0; }
private boolean isOrderBy() { if (query.isSelectStatement()) { return query.getSelectStatement().hasOrderByClause(); } return false; }
/** * Sets the kundera query type object. */ private void setKunderaQueryTypeObject() { try { if (isSelectStatement()) { this.setSelectStatement((SelectStatement) (this.getJpqlExpression().getQueryStatement())); } else if (isUpdateStatement()) { this.setUpdateStatement((UpdateStatement) (this.getJpqlExpression().getQueryStatement())); } else if (isDeleteStatement()) { this.setDeleteStatement((DeleteStatement) (this.getJpqlExpression().getQueryStatement())); } } catch (ClassCastException cce) { throw new JPQLParseException("Bad query format : " + cce.getMessage()); } }
private boolean isWhereClause() { if (query.isSelectStatement()) { return query.getSelectStatement().hasWhereClause(); } else if (query.isUpdateStatement()) { return query.getUpdateStatement().hasWhereClause(); } if (query.isDeleteStatement()) { return query.getDeleteStatement().hasWhereClause(); } return false; }
"ORDER BY p.personId ASC"; KunderaQuery kunderaQuery = new KunderaQuery(query, kunderaMetadata); KunderaQueryParser queryParser = new KunderaQueryParser(kunderaQuery); queryParser.parse(); kunderaQuery.postParsingInit(); Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(Person.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata(kunderaMetadata, Person.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNotNull(kunderaQuery.getFilter()); Assert.assertFalse(kunderaQuery.getFilterClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getFrom()); Assert.assertTrue(kunderaQuery.getUpdateClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getResult()); Assert.assertEquals(PU, kunderaQuery.getPersistenceUnit()); Assert.assertNotNull(kunderaQuery.getOrdering()); Assert.assertEquals(1, kunderaQuery.getOrdering().size()); Assert.assertEquals("p.personId", kunderaQuery.getOrdering().get(0).getColumnName()); Assert.assertEquals(KunderaQuery.SortOrder.ASC, kunderaQuery.getOrdering().get(0).getOrder()); for (Object filterObject : kunderaQuery.getFilterClauseQueue()) { if (filterObject instanceof FilterClause) { FilterClause clause = (FilterClause) filterObject;
boolean isNative = kunderaQuery.isNative(); if (kunderaQuery.isAggregated()) createMongoQuery(m, getKunderaQuery().getFilterClauseQueue()), createAggregationLookup(m), createAggregation(m), getAggregationOrderByClause(m), isSingleResult ? 1 : maxResult); createMongoQuery(m, getKunderaQuery().getFilterClauseQueue()), null, orderByClause, isSingleResult ? 1 : maxResult, firstResult, isCountQuery(), getKeys(m, getKunderaQuery().getResult()), getKunderaQuery().getResult()); return populateUsingLucene(m, client, null, getKunderaQuery().getResult());
/** * Adds the where clause. * * @param builder * the builder */ void addWhereClause(StringBuilder builder) { if (!getKunderaQuery().getFilterClauseQueue().isEmpty()) { builder.append(CQLTranslator.ADD_WHERE_CLAUSE); } }
KunderaQuery kunderaQuery = new KunderaQuery(updateQuery, kunderaMetadata); KunderaQueryParser parser = new KunderaQueryParser(kunderaQuery); parser.parse(); Assert.assertEquals("Country", kunderaQuery.getFrom()); Assert.assertEquals("currency = INR", kunderaQuery.getFilter()); Assert.assertNull(kunderaQuery.getResult()); Assert.assertTrue(kunderaQuery.isUpdateClause()); Assert.assertEquals(true, kunderaQuery.isDeleteUpdate()); for (UpdateClause q : kunderaQuery.getUpdateClauseQueue()) kunderaQuery = new KunderaQuery(multiValueUpdaeQuery, kunderaMetadata); Assert.assertEquals("Country", kunderaQuery.getFrom()); Assert.assertEquals("currency = INR", kunderaQuery.getFilter()); Assert.assertNull(kunderaQuery.getResult()); Assert.assertTrue(kunderaQuery.isUpdateClause()); Assert.assertEquals(true, kunderaQuery.isDeleteUpdate()); Assert.assertEquals(2, kunderaQuery.getUpdateClauseQueue().size()); UpdateClause[] result = kunderaQuery.getUpdateClauseQueue().toArray(new UpdateClause[] {}); Assert.assertEquals("population", result[0].getProperty()); Assert.assertEquals("10", result[0].getValue()); kunderaQuery = new KunderaQuery(deleteQuery, kunderaMetadata); parser = new KunderaQueryParser(kunderaQuery); parser.parse(); Assert.assertEquals("Country", kunderaQuery.getFrom());
boolean isNative = kunderaQuery.isNative(); ls = populateUsingLucene(m, client, null, getKunderaQuery().getResult()); ? prepareIndexClause(m, useInvertedIndex) : null; if (useInvertedIndex && !getKunderaQuery().getFilterClauseQueue().isEmpty()) { ls = ((CassandraEntityReader) getReader()).readFromIndexTable(m, client, ixClause); } else {
/** * Checks whether a given JPA DML query is convertible to CQL. * * @param kunderaQuery * the kundera query * @return true, if is query convertible to cql */ private boolean isQueryConvertibleToCQL(KunderaQuery kunderaQuery) { EntityMetadata m = kunderaQuery.getEntityMetadata(); if (kunderaQuery.isUpdateClause() && m.isCounterColumnType()) return false; List<String> opsNotAllowed = Arrays.asList(new String[] { ">", "<", ">=", "<=" }); boolean result = false; if (!kunderaQuery.getFilterClauseQueue().isEmpty()) { String idColumn = ((AbstractAttribute) m.getIdAttribute()).getJPAColumnName(); for (Object o : kunderaQuery.getFilterClauseQueue()) { if (o instanceof FilterClause) { FilterClause filterClause = (FilterClause) o; if (!idColumn.equals(filterClause.getProperty()) || opsNotAllowed.contains(filterClause.getCondition())) { result = false; break; } result = true; } } } return result; }
for (Object o : getKunderaQuery().getFilterClauseQueue()) { if (o instanceof FilterClause) { FilterClause clause = ((FilterClause) o); if (!StringUtils.isBlank(getKunderaQuery().getFilter())) { indexClause.setExpressions(expr); clauses.add(indexClause);
@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; } }
EntityMetadata m = getEntityMetadata(); Client client = m != null ? persistenceDelegeator.getClient(m) : persistenceDelegeator.getClient(kunderaQuery.getPersistenceUnit()); externalProperties = ((CassandraClientBase) client).getExternalProperties(); ApplicationMetadata appMetadata = kunderaMetadata.getApplicationMetadata(); boolean isNative = kunderaQuery.isNative(); } else if (kunderaQuery.isDeleteUpdate()) { } else { query = null; if (kunderaQuery.isUpdateClause()) { query = createUpdateQuery(kunderaQuery); } else {
EntityMetadata metadata = kunderaQuery.getEntityMetadata(); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( metadata.getPersistenceUnit()); boolean partitionKeyCheck = true; for (Object object : kunderaQuery.getFilterClauseQueue()) if (property.lastIndexOf('.') != property.indexOf('.') && partitionKeyCheck) isCompletePartitionKeyPresentInQuery(kunderaQuery.getFilterClauseQueue(), metaModel, metadata); partitionKeyCheck = false; queryBuilder.appendEntityName(kunderaQuery.getEntityClass().getCanonicalName().toLowerCase()); return queryBuilder.getQuery();
SelectStatement selectStatement = query.getSelectStatement(); if (KunderaQueryUtils.hasGroupBy(query.getJpqlExpression())) if (KunderaQueryUtils.hasHaving(query.getJpqlExpression())) aggregationBuilder = (selectStatement != null) ? query.isAggregated() ? buildSelectAggregations( aggregationBuilder, selectStatement, entityMetadata) : null : null;
if (kunderaQuery.getFilterClauseQueue().isEmpty()) String idColumnName = ((AbstractAttribute) kunderaQuery.getEntityMetadata().getIdAttribute()) .getJPAColumnName(); sb.append(idColumnName).append(":").append("*"); for (Object object : kunderaQuery.getFilterClauseQueue())
/** * Checks if is native. * * @return true, if is native */ boolean isNative() { return kunderaQuery.isNative(); }
if (query.isAggregated() == true && response.getAggregations() != null) if (query.isSelectStatement() && KunderaQueryUtils.hasGroupBy(query.getJpqlExpression()))