/** * 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; }
/** * 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); }
@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); }
/** * Compile where. */ private void compileWhere() { WhereClause whereClause = null; if (query.isSelectStatement()) { whereClause = (WhereClause) query.getSelectStatement().getWhereClause(); } else if (query.isUpdateStatement()) { whereClause = (WhereClause) query.getUpdateStatement().getWhereClause(); } if (query.isDeleteStatement()) { whereClause = (WhereClause) query.getDeleteStatement().getWhereClause(); } String content = whereClause.getConditionalExpression().toActualText(); if (whereClause != null && content.length() == 0) { throw new JPQLParseException("keyword without value[WHERE]"); } query.setFilter(content); }
@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); }
Expression whereExp = whereClause.getConditionalExpression();
Expression whereExp = whereClause.getConditionalExpression(); filter = table.filter(parseAndBuildFilters(entityType, whereExp));
Expression whereExp = whereClause.getConditionalExpression(); parseAndBuildFilters(entityType, scannerBuilder, whereExp);
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { clause = WHERE; expression.getConditionalExpression().accept(this); clause = null; } }
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { expression.getConditionalExpression().accept(this); }
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { expression.getConditionalExpression().accept(this); }
/** * {@inheritDoc} */ public void visit(WhereClause expression) { expression.getConditionalExpression().accept(this); }
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { expression.getConditionalExpression().accept(this); }
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { expression.getConditionalExpression().accept(this); }
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { expression.getConditionalExpression().accept(this); }
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { if (expression.hasConditionalExpression()) { conditionalExpression = true; expression.getConditionalExpression().accept(this); conditionalExpression = false; } } }
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { WhereClauseStateObject whereClause = stateObject.addWhereClause(); whereClause.setExpression(expression); expression.getConditionalExpression().accept(BasicStateObjectBuilder.this); StateObject conditionalStateObject = BasicStateObjectBuilder.this.stateObject; whereClause.setConditional(conditionalStateObject); } }
/** * {@inheritDoc} */ @Override public void visit(WhereClause expression) { WhereClauseStateObject whereClause = stateObject.addWhereClause(); whereClause.setExpression(expression); StateObject stateObject = buildStateObjectImp(expression.getConditionalExpression()); whereClause.setConditional(stateObject); } }
@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); }
@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); }