/** * Checks if is delete statement. * * @return true, if is delete statement */ public boolean isDeleteStatement() { return this.getJpqlExpression().getQueryStatement().getClass().isAssignableFrom(DeleteStatement.class); }
/** * Checks if is update statement. * * @return true, if is update statement */ public boolean isUpdateStatement() { return this.getJpqlExpression().getQueryStatement().getClass().isAssignableFrom(UpdateStatement.class); }
/** * Checks if is select statement. * * @return true, if is select statement */ public boolean isSelectStatement() { return this.getJpqlExpression().getQueryStatement().getClass().isAssignableFrom(SelectStatement.class); }
/** * 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()); } }
if (KunderaQueryUtils.hasGroupBy(kunderaQuery.getJpqlExpression()))
.get(ESConstants.AGGREGATION_NAME)).getAggregations(); if (query.isSelectStatement() && KunderaQueryUtils.hasGroupBy(query.getJpqlExpression()))
/** * Gets the select expression order. * * @param query * the query * @return the select expression order */ public ListIterable<Expression> getSelectExpressionOrder(KunderaQuery query) { if (!KunderaQueryUtils.isSelectStatement(query.getJpqlExpression())) { return null; } Expression selectExpression = ((SelectClause) (query.getSelectStatement()).getSelectClause()) .getSelectExpression(); List<Expression> list; if (!(selectExpression instanceof CollectionExpression)) { list = new LinkedList<Expression>(); list.add(selectExpression); return new SnapshotCloneListIterable<Expression>(list); } else { return selectExpression.children(); } }
if (KunderaQueryUtils.hasGroupBy(query.getJpqlExpression())) if (KunderaQueryUtils.hasHaving(query.getJpqlExpression()))
/** * Sets the filters from where clause. * * @param query * the query * @param m * the m * @param useLuceneOrES * the use lucene or es * @return the filters from where clause */ private Filter getFiltersFromWhereClause(KunderaQuery query, EntityMetadata m, Boolean useLuceneOrES) { String idColumn = ((AbstractAttribute) m.getIdAttribute()).getJPAColumnName(); WhereClause whereClause = KunderaQueryUtils.getWhereClause(query.getJpqlExpression()); if (whereClause != null) { this.isWhereOrAggregation = true; if (!useLuceneOrES) return traverse(whereClause.getConditionalExpression(), m, idColumn); } return null; }
&& KunderaQueryUtils.hasGroupBy(kunderaQuery.getJpqlExpression())))
if (KunderaQueryUtils.hasHaving(query.getJpqlExpression())) if (KunderaQueryUtils.hasOrderBy(query.getJpqlExpression())) processOrderByClause(termsBuilder, KunderaQueryUtils.getOrderByClause(query.getJpqlExpression()), groupByClause, entityMetadata);
@Override protected List<Object> populateEntities(EntityMetadata m, Client client) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( m.getPersistenceUnit()); EntityType entity = metaModel.entity(m.getEntityClazz()); Expression whereExpression = KunderaQueryUtils.getWhereClause(kunderaQuery.getJpqlExpression()); QueryBuilder filter = whereExpression == null || whereExpression instanceof NullExpression ? null : esFilterBuilder.populateFilterBuilder(((WhereClause) whereExpression).getConditionalExpression(), m); return ((ESClient) client).executeQuery(filter, buildAggregation(kunderaQuery, m, filter), m, getKunderaQuery(),this.firstResult, this.maxResult); }
/** * Inits the filter. */ private void initFilter() { EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); Metamodel metaModel = kunderaMetadata.getApplicationMetadata().getMetamodel(getPersistenceUnit()); EntityType entityType = metaModel.entity(entityClass); if (null == filter) { List<String> clauses = new ArrayList<String>(); addDiscriminatorClause(clauses, entityType); return; } WhereClause whereClause = KunderaQueryUtils.getWhereClause(getJpqlExpression()); KunderaQueryUtils.traverse(whereClause.getConditionalExpression(), metadata, kunderaMetadata, this, false); for (Object filterClause : filtersQueue) { if (!(filterClause instanceof String)) { onTypedParameter(((FilterClause) filterClause)); } } addDiscriminatorClause(null, entityType); }
if (query.isSelectStatement() && KunderaQueryUtils.hasGroupBy(query.getJpqlExpression()))
/** * Adds the sort order. * * @param builder * the builder * @param query * the query * @param entityMetadata * the entity metadata */ private void addSortOrder(SearchRequestBuilder builder, KunderaQuery query, EntityMetadata entityMetadata) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata() .getMetamodel(entityMetadata.getPersistenceUnit()); List<OrderByItem> orderList = KunderaQueryUtils.getOrderByItems(query.getJpqlExpression()); for (OrderByItem orderByItem : orderList) { String ordering = orderByItem.getOrdering().toString(); if (ordering.equalsIgnoreCase(ESConstants.DEFAULT)) { ordering = Expression.ASC; } builder.addSort(KunderaCoreUtils.getJPAColumnName(orderByItem.getExpression().toParsedText(), entityMetadata, metaModel), SortOrder.valueOf(ordering)); } }
List<OrderByItem> orderList = KunderaQueryUtils.getOrderByItems(query.getJpqlExpression());
@Override public Map<String, Object> search(KunderaMetadata kunderaMetadata, KunderaQuery kunderaQuery, PersistenceDelegator persistenceDelegator, EntityMetadata m, int firstResult, int maxResults) { ESQuery query = new ESQuery<>(kunderaQuery, persistenceDelegator, kunderaMetadata); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata() .getMetamodel(m.getPersistenceUnit()); Expression whereExpression = KunderaQueryUtils.getWhereClause(kunderaQuery.getJpqlExpression()); QueryBuilder filter = whereExpression != null ? query.getEsFilterBuilder() .populateFilterBuilder(((WhereClause) whereExpression).getConditionalExpression(), m) : null; FilteredQueryBuilder queryBuilder = QueryBuilders.filteredQuery(null, filter); SearchResponse response = getSearchResponse(kunderaQuery, queryBuilder, filter, query, m, firstResult, maxResults, kunderaMetadata); return buildResultMap(response, kunderaQuery, m, metaModel); }
.getMetamodel(m.getPersistenceUnit()); EntityType entityType = metaModel.entity(m.getEntityClazz()); JPQLExpression jpqlExp = kunderaQuery.getJpqlExpression(); List<String> selectColumns = KunderaQueryUtils.getSelectColumns(jpqlExp); AsPath asPath;
EntityType entityType = metaModel.entity(m.getEntityClazz()); JPQLExpression jpqlExp = kunderaQuery.getJpqlExpression(); List<String> selectColumns = KunderaQueryUtils.getSelectColumns(jpqlExp);
JPQLExpression jpqlExp = kunderaQuery.getJpqlExpression(); List<String> selectColumns = KunderaQueryUtils.getSelectColumns(jpqlExp); if (!selectColumns.isEmpty())