diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancer.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancer.java index 1733df96e..4b17555c5 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancer.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancer.java @@ -360,7 +360,7 @@ public class JSqlParserQueryEnhancer implements QueryEnhancer { return applySortingToSetOperationList(setOperationList, sort); } - doWithPlainSelect (selectStatement , it -> { + doWithPlainSelect(selectStatement, it -> { List orderByElements = new ArrayList<>(16); for (Sort.Order order : sort) { diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancerUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancerUnitTests.java index 07f04372b..e756ea027 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancerUnitTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JSqlParserQueryEnhancerUnitTests.java @@ -245,6 +245,17 @@ class JSqlParserQueryEnhancerUnitTests extends QueryEnhancerTckTests { assertThat(queryEnhancer.hasConstructorExpression()).isFalse(); } + @Test // GH-3869 + void shouldWorkWithParenthesedSelect() { + + DefaultEntityQuery query = new TestEntityQuery("(SELECT is_contained_in(:innerId, :outerId))", true); + QueryEnhancer queryEnhancer = QueryEnhancerFactory.forQuery(query).create(query); + + assertThat(query.getQueryString()).isEqualTo("(SELECT is_contained_in(:innerId, :outerId))"); + assertThat(query.getAlias()).isNull(); + assertThat(queryEnhancer.getProjection()).isEqualTo("is_contained_in(:innerId, :outerId)"); + } + @ParameterizedTest // GH-2641 @MethodSource("mergeStatementWorksSource") void mergeStatementWorksWithJSqlParser(String queryString, String alias) { @@ -271,31 +282,9 @@ class JSqlParserQueryEnhancerUnitTests extends QueryEnhancerTckTests { null)); } - @Test // GH-3869 - void shouldWorkWithParenthesedSelect() { - - String query = "(SELECT is_contained_in(:innerId, :outerId))"; - - StringQuery stringQuery = new StringQuery(query, true); - QueryEnhancer queryEnhancer = QueryEnhancerFactory.forQuery(stringQuery); - - assertThat(stringQuery.getQueryString()).isEqualTo(query); - assertThat(stringQuery.getAlias()).isNull(); - assertThat(queryEnhancer.getProjection()).isEqualTo("is_contained_in(:innerId, :outerId)"); - } - private static DefaultQueryRewriteInformation getRewriteInformation(Sort sort) { return new DefaultQueryRewriteInformation(sort, ReturnedType.of(Object.class, Object.class, new SpelAwareProxyProjectionFactory())); } - @Test // GH-3869 - void shouldWorkWithoutFromClause() { - String query = "SELECT is_contained_in(:innerId, :outerId)"; - - StringQuery stringQuery = new StringQuery(query, true); - - assertThat(stringQuery.getQueryString()).isEqualTo(query); - } - }