/** * Prepares the object before it's actually bound to the {@link javax.persistence.Query;}. * * @param value must not be {@literal null}. */ @Nullable public Object prepare(Object value) { Assert.notNull(value, "Value must not be null!"); Class<? extends T> expressionType = expression.getJavaType(); if (String.class.equals(expressionType)) { switch (type) { case STARTING_WITH: return String.format("%s%%", value.toString()); case ENDING_WITH: return String.format("%%%s", value.toString()); case CONTAINING: case NOT_CONTAINING: return String.format("%%%s%%", value.toString()); default: return value; } } return Collection.class.isAssignableFrom(expressionType) // ? persistenceProvider.potentiallyConvertEmptyCollection(toCollection(value)) // : value; }
@Override @SuppressWarnings("unchecked") public ExplicitParameterInfo registerExplicitParameter(ParameterExpression<?> criteriaQueryParameter) { ExplicitParameterInfo parameterInfo = explicitParameterInfoMap.get( criteriaQueryParameter ); if ( parameterInfo == null ) { if ( StringHelper.isNotEmpty( criteriaQueryParameter.getName() ) ) { parameterInfo = new ExplicitParameterInfo( criteriaQueryParameter.getName(), null, criteriaQueryParameter.getJavaType() ); } else if ( criteriaQueryParameter.getPosition() != null ) { parameterInfo = new ExplicitParameterInfo( null, criteriaQueryParameter.getPosition(), criteriaQueryParameter.getJavaType() ); } else { parameterInfo = new ExplicitParameterInfo( generateParameterName(), null, criteriaQueryParameter.getJavaType() ); } explicitParameterInfoMap.put( criteriaQueryParameter, parameterInfo ); } return parameterInfo; }
/** * Prepares the object before it's actually bound to the {@link javax.persistence.Query;}. * * @param value must not be {@literal null}. */ @Nullable public Object prepare(Object value) { Assert.notNull(value, "Value must not be null!"); Class<? extends T> expressionType = expression.getJavaType(); if (String.class.equals(expressionType)) { switch (type) { case STARTING_WITH: return String.format("%s%%", value.toString()); case ENDING_WITH: return String.format("%%%s", value.toString()); case CONTAINING: case NOT_CONTAINING: return String.format("%%%s%%", value.toString()); default: return value; } } return Collection.class.isAssignableFrom(expressionType) // ? persistenceProvider.potentiallyConvertEmptyCollection(toCollection(value)) // : value; }
/** * Prepares the object before it's actually bound to the {@link javax.persistence.Query;}. * * @param value must not be {@literal null}. * @return */ public Object prepare(Object value) { Assert.notNull(value, "Value must not be null!"); Class<? extends T> expressionType = expression.getJavaType(); if (String.class.equals(expressionType)) { switch (type) { case STARTING_WITH: return String.format("%s%%", value.toString()); case ENDING_WITH: return String.format("%%%s", value.toString()); case CONTAINING: case NOT_CONTAINING: return String.format("%%%s%%", value.toString()); default: return value; } } return Collection.class.isAssignableFrom(expressionType) ? persistenceProvider.potentiallyConvertEmptyCollection(toCollection(value)) : value; }
/** * Prepares the object before it's actually bound to the {@link javax.persistence.Query;}. * * @param value must not be {@literal null}. * @return */ public Object prepare(Object value) { Assert.notNull(value, "Value must not be null!"); Class<? extends T> expressionType = expression.getJavaType(); if (String.class.equals(expressionType)) { switch (type) { case STARTING_WITH: return String.format("%s%%", value.toString()); case ENDING_WITH: return String.format("%%%s", value.toString()); case CONTAINING: case NOT_CONTAINING: return String.format("%%%s%%", value.toString()); default: return value; } } return Collection.class.isAssignableFrom(expressionType) ? persistenceProvider.potentiallyConvertEmptyCollection(toCollection(value)) : value; }
/** * Translates from the criteria query to a EclipseLink Database Query. */ public DatabaseQuery translate() { DatabaseQuery query = getDatabaseQuery(); for (ParameterExpression<?> parameter : getParameters()) { query.addArgument(((ParameterExpressionImpl)parameter).getInternalName(), parameter.getJavaType()); } if (this.where != null) { if (((InternalExpression) this.where).isJunction()) { if (!((PredicateImpl) this.where).getJunctionValue()) { query.setSelectionCriteria(new ConstantExpression(1, getBaseExpression()).equal(0)); } } else { query.setSelectionCriteria(((InternalSelection) this.where).getCurrentNode()); } } return query; }