diff --git a/src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java b/src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java index 1df2162836..ba347062b9 100644 --- a/src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java +++ b/src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java @@ -303,12 +303,35 @@ public boolean isQuoted(int index) { return quotations.isQuoted(index); } + /** + * @param name + * @return + * @since 4.0 + */ + public boolean hasExpression(String name) { + return expressions.get(name) != null; + } + + @Nullable public ValueExpression getParameter(String name) { + return expressions.get(name); + } + + /** + * Returns the required {@link ValueExpression} for the given name or throws an {@link IllegalArgumentException} if + * the parameter is not present. + * + * @param name + * @return + * @throws IllegalArgumentException if the parameter is not present. + * @since 4.0 + */ + public ValueExpression getRequiredParameter(String name) { - ValueExpression valueExpression = expressions.get(name); + ValueExpression valueExpression = getParameter(name); if (valueExpression == null) { - throw new IllegalArgumentException("No ValueExpression with name '%s' found in query.".formatted(name)); + throw new IllegalArgumentException("No ValueExpression with name '%s' found in query".formatted(name)); } return valueExpression;