From cc8f0c8ab77e3b451adb8ed9bcab76d813806e62 Mon Sep 17 00:00:00 2001 From: Taylor Date: Sun, 24 Mar 2019 13:59:50 -0700 Subject: [PATCH] DATAES-552 - @Query annotation fail when passing over 10 parameters Updated the replacePlaceholders methods to use replaceFirst to prevent duplication substitutions. Original Pull Request: #267 --- .../repository/query/ElasticsearchStringQuery.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.java index 1712bd1be..c0e33c97e 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.java @@ -32,6 +32,7 @@ import org.springframework.util.Assert; * @author Rizwan Idrees * @author Mohsin Husen * @author Mark Paluch + * @author Taylor Ono */ public class ElasticsearchStringQuery extends AbstractElasticsearchRepositoryQuery { @@ -86,8 +87,9 @@ public class ElasticsearchStringQuery extends AbstractElasticsearchRepositoryQue String result = input; while (matcher.find()) { String group = matcher.group(); + group = "\\" + group; int index = Integer.parseInt(matcher.group(1)); - result = result.replace(group, getParameterWithIndex(accessor, index)); + result = result.replaceFirst(group, getParameterWithIndex(accessor, index)); } return result; }