public static void printQueryWithFilterClause(Queue filterClausequeue, String tableName) { StringBuilder printQuery = new StringBuilder("Fetch data from ").append(tableName).append(" for "); for (Object clause : filterClausequeue) { if (clause instanceof FilterClause) { printQuery.append(((FilterClause) clause).getProperty()).append(" ") .append(((FilterClause) clause).getCondition()).append(" ") .append(((FilterClause) clause).getValue()); } else { printQuery.append(" ").append(clause.toString()).append(" "); } } KunderaCoreUtils.printQuery(printQuery.toString(), true); }
FilterClause filter = (FilterClause) object; sb.append(filter.getProperty());
String clauseName = ((FilterClause) clause).getProperty(); StringTokenizer stringTokenizer = new StringTokenizer(clauseName, ".");
String columnName = ((FilterClause) clause).getProperty();
if (o instanceof FilterClause) { FilterClause clause = ((FilterClause) o); String fieldName = clause.getProperty(); String condition = clause.getCondition(); List<Object> value = clause.getValue();
String propertyName = clause.getProperty(); String condition = clause.getCondition();
String columnName = ((FilterClause) clause).getProperty();
String columnName = ((FilterClause) clause).getProperty(); String condition = ((FilterClause) clause).getCondition(); Object value = ((FilterClause) clause).getValue();
if (clause.getClass().isAssignableFrom(FilterClause.class)) Assert.assertNotNull(((FilterClause) clause).getProperty()); Assert.assertNotNull(((FilterClause) clause).getValue().get(0)); Assert.assertNotNull(((FilterClause) clause).getCondition());
String property = filter.getProperty(); String condition = filter.getCondition(); String valueAsString = filter.getValue().get(0).toString();
if (o instanceof FilterClause) { FilterClause clause = ((FilterClause) o); String fieldName = clause.getProperty();
Object value = condition.equals(Expression.IN) ? clause.getValue() : clause.getValue().get(0); String name = ((AbstractAttribute) ((MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( metadata.getPersistenceUnit())).entity(metadata.getEntityClazz()).getAttribute(clause.getProperty())) .getJPAColumnName();
String name = ((FilterClause) obj).getProperty(); Object value = ((FilterClause) obj).getValue().get(0); if (idColumn.equalsIgnoreCase(name))
FilterClause filterClause = (FilterClause) clause; Field f = (Field) metaModel.entity(metadata.getEntityClazz()) .getAttribute(metadata.getFieldName(filterClause.getProperty())).getJavaMember(); String jpaColumnName = getColumnName(metadata, filterClause.getProperty());
String columnName = ((FilterClause) clause).getProperty(); SingularAttribute idAttribute = entityMetadata.getIdAttribute(); if (columnName.equals(((AbstractAttribute) idAttribute).getJPAColumnName()))
String property = filter.getProperty(); String filterAttr[] = property.split("\\."); for (String s : filterAttr)
String fieldName = clause.getProperty(); String condition = clause.getCondition();
/** * 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; }
/** * Gets the query. * * @param clause * the clause * @param metadata * the metadata * @return the query */ private QueryBuilder getQueryBuilder(FilterClause clause, final EntityMetadata metadata) { String condition = clause.getCondition(); String value = clause.getValue().get(0).toString(); String name = ((AbstractAttribute) ((MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( metadata.getPersistenceUnit())).entity(metadata.getEntityClazz()).getAttribute(clause.getProperty())) .getJPAColumnName(); String likePattern = value.contains(ESConstants.PERCENTAGE) ? value.replaceAll(ESConstants.PERCENTAGE, ESConstants.ASTERISK) : ESConstants.ASTERISK + value + ESConstants.ASTERISK; QueryBuilder queryBuilder = null; if (condition.equals(Expression.LIKE)) { queryBuilder = QueryBuilders.wildcardQuery(name, likePattern); } return QueryBuilders.queryFilter(queryBuilder); } }
@Override protected List<Object> populateEntities(EntityMetadata m, Client client) { // Only find by id queries supported. EntityMetadata entityMetadata = getEntityMetadata(); Object value = null; for(Object clause: getKunderaQuery().getFilterClauseQueue()) { if(clause instanceof FilterClause) { String property = ((FilterClause)clause).getProperty(); String condition = ((FilterClause)clause).getCondition(); value = ((FilterClause)clause).getValue().get(0); } } Object result = client.find(m.getEntityClazz(), value); List results = new ArrayList(); if(result != null) { results.add(result); } return results; }