From 47c72ea19d7d95a5f3529eca91584db724afbffa Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Mon, 4 Sep 2017 15:32:26 +0200 Subject: [PATCH] DATAJPA-1171 - Polishing. Added unit test to verify new behavior. Formatting. Original pull request: #212. --- .../data/jpa/repository/query/QueryUtils.java | 10 ++++++---- .../data/jpa/repository/query/QueryUtilsUnitTests.java | 8 ++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java b/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java index 584d25caf..93622097e 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java @@ -183,16 +183,18 @@ public abstract class QueryUtils { public static String getExistsQueryString(String entityName, String countQueryPlaceHolder, Iterable idAttributes) { - StringBuilder sb = new StringBuilder(String.format(COUNT_QUERY_STRING, countQueryPlaceHolder, entityName)); + StringBuilder builder = new StringBuilder(String.format(COUNT_QUERY_STRING, countQueryPlaceHolder, entityName)); String append = " WHERE "; for (String idAttribute : idAttributes) { - sb.append(append); - sb.append(String.format(EQUALS_CONDITION_STRING, "x", idAttribute, idAttribute)); + + builder.append(append); + builder.append(String.format(EQUALS_CONDITION_STRING, "x", idAttribute, idAttribute)); + append = " AND "; } - return sb.toString(); + return builder.toString(); } /** diff --git a/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java index e0e19ef25..5dbded5bc 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/QueryUtilsUnitTests.java @@ -19,6 +19,7 @@ import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; import static org.springframework.data.jpa.repository.query.QueryUtils.*; +import java.util.Collections; import java.util.Set; import org.hamcrest.Matcher; @@ -513,6 +514,13 @@ public class QueryUtilsUnitTests { assertThat(aliases, contains("authority")); } + @Test // DATAJPA-1171 + public void doesNotContainStaticClauseInExistsQuery() { + + assertThat(QueryUtils.getExistsQueryString("entity", "x", Collections.singleton("id")), // + endsWith("WHERE x.id = :id")); + } + private static void assertCountQuery(String originalQuery, String countQuery) { assertThat(createCountQueryFor(originalQuery), is(countQuery)); }