public FullQueryBuilder<?, ?> applyTo(FullQueryBuilder<?, ?> queryBuilder) { for (Parameter param : parameterList) { if (param instanceof NamedParameter) { NamedParameter namedParameter = (NamedParameter) param; queryBuilder.setParameter(getParameterName(namedParameter), getParameterValue(param)); } else { throw new UnsupportedOperationException("Blaze-Persistence criteria builder only supports named parameters"); } } return queryBuilder; }
protected final void setEntityParam(Query query, String paramName, Object viewRootId) { EntityManager em = criteriaBuilder.getEntityManager(); if (viewRootId instanceof Collection) { Collection<Object> paramCollection = (Collection<Object>) viewRootId; List<Object> viewRootEntities = new ArrayList<Object>(paramCollection.size()); for (Object paramValue : paramCollection) { if (paramValue != null) { viewRootEntities.add(em.getReference(viewRootEntityType, paramValue)); } } criteriaBuilder.setParameter(paramName, viewRootEntities); query.setParameter(paramName, viewRootEntities); } else { Object viewRootEntity = em.getReference(viewRootEntityType, viewRootId); criteriaBuilder.setParameter(paramName, viewRootEntity); query.setParameter(paramName, viewRootEntity); } }
public void setParameters(Query query, Object viewRootId) { if (batchedViewRoot) { if (originalViewRootExpression != null) { setEntityParam(query, originalViewRootExpression, viewRootId); } else { setEntityParam(query, viewRootExpression, viewRootId); } return; } if (viewRootParamName != null) { setEntityParam(query, viewRootParamName, viewRootId); } if (viewRootIdParamName != null) { criteriaBuilder.setParameter(viewRootIdParamName, viewRootId); query.setParameter(viewRootIdParamName, viewRootId); } }
@Override protected void populateParameters(FullQueryBuilder<?, ?> queryBuilder) { FullQueryBuilder<?, ?> mainBuilder = entityViewConfiguration.getCriteriaBuilder(); for (Parameter<?> paramEntry : mainBuilder.getParameters()) { if (!paramEntry.getName().equals(correlationParamName) && queryBuilder.containsParameter(paramEntry.getName()) && !queryBuilder.isParameterSet(paramEntry.getName())) { queryBuilder.setParameter(paramEntry.getName(), mainBuilder.getParameterValue(paramEntry.getName())); } } for (Map.Entry<String, Object> paramEntry : entityViewConfiguration.getOptionalParameters().entrySet()) { if (!paramEntry.getKey().equals(correlationParamName) && queryBuilder.containsParameter(paramEntry.getKey()) && !queryBuilder.isParameterSet(paramEntry.getKey())) { queryBuilder.setParameter(paramEntry.getKey(), paramEntry.getValue()); } } }
protected void populateParameters(FullQueryBuilder<?, ?> queryBuilder) { FullQueryBuilder<?, ?> mainBuilder = entityViewConfiguration.getCriteriaBuilder(); for (Parameter<?> paramEntry : mainBuilder.getParameters()) { if (queryBuilder.containsParameter(paramEntry.getName()) && !queryBuilder.isParameterSet(paramEntry.getName())) { queryBuilder.setParameter(paramEntry.getName(), mainBuilder.getParameterValue(paramEntry.getName())); } } for (Map.Entry<String, Object> paramEntry : entityViewConfiguration.getOptionalParameters().entrySet()) { if (queryBuilder.containsParameter(paramEntry.getKey()) && !queryBuilder.isParameterSet(paramEntry.getKey())) { queryBuilder.setParameter(paramEntry.getKey(), paramEntry.getValue()); } } }