@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; }
@Override public void visitParameterExpression( ParameterExpression<?> parameterExpression) { if (parameterExpression.getName() != null) { this.jpqlBuilder.append(':').append(parameterExpression.getName()); } else { this.jpqlBuilder.append('?').append(parameterExpression.getPosition()); } }
@Override public String registerExplicitParameter(ParameterExpression<?> criteriaQueryParameter) { final String jpaqlParameterName; if (explicitParameterMapping.containsKey(criteriaQueryParameter)) { jpaqlParameterName = explicitParameterMapping.get(criteriaQueryParameter); } else { if (criteriaQueryParameter.getName() == null || criteriaQueryParameter.getName().isEmpty()) { if (criteriaQueryParameter.getPosition() != null) { throw new IllegalArgumentException("Positional parameters are not supported in criteria queries!"); } else { jpaqlParameterName = generateParameterName(); ((ParameterExpressionImpl<?>) criteriaQueryParameter).setName(jpaqlParameterName); } } else { jpaqlParameterName = criteriaQueryParameter.getName(); } explicitParameterNameMapping.put(jpaqlParameterName, criteriaQueryParameter); explicitParameterMapping.put(criteriaQueryParameter, jpaqlParameterName); } return jpaqlParameterName; }
@Override public String registerExplicitParameter(ParameterExpression<?> criteriaQueryParameter) { final String jpaqlParameterName; if (explicitParameterMapping.containsKey(criteriaQueryParameter)) { jpaqlParameterName = explicitParameterMapping.get(criteriaQueryParameter); } else { if (criteriaQueryParameter.getName() == null || criteriaQueryParameter.getName().isEmpty()) { if (criteriaQueryParameter.getPosition() != null) { throw new IllegalArgumentException("Positional parameters are not supported in criteria queries!"); } else { jpaqlParameterName = generateParameterName(); ((ParameterExpressionImpl<?>) criteriaQueryParameter).setName(jpaqlParameterName); } } else { jpaqlParameterName = criteriaQueryParameter.getName(); } explicitParameterNameMapping.put(jpaqlParameterName, criteriaQueryParameter); explicitParameterMapping.put(criteriaQueryParameter, jpaqlParameterName); } return jpaqlParameterName; }
if (metadata.getExpression().getPosition() == null) { if (metadata.getExpression().getName() == null) { query.setParameter((Parameter) metadata.getExpression(), (Date) metadata.prepare(value), query.setParameter(metadata.getExpression().getPosition(), (Date) metadata.prepare(value), parameter.getTemporalType()); if (metadata.getExpression().getPosition() == null) { if (metadata.getExpression().getName() == null) { query.setParameter(metadata.getExpression(), metadata.prepare(value)); query.setParameter(metadata.getExpression().getPosition(), metadata.prepare(value));
if (metadata.getExpression().getPosition() == null) { if (metadata.getExpression().getName() == null) { query.setParameter((Parameter) metadata.getExpression(), (Date) metadata.prepare(value), query.setParameter(metadata.getExpression().getPosition(), (Date) metadata.prepare(value), parameter.getTemporalType()); if (metadata.getExpression().getPosition() == null) { if (metadata.getExpression().getName() == null) { query.setParameter(metadata.getExpression(), metadata.prepare(value)); query.setParameter(metadata.getExpression().getPosition(), metadata.prepare(value));