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 9f23f49d9..48c61c893 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 @@ -71,6 +71,7 @@ import org.springframework.util.StringUtils; * @author Mark Paluch * @author Sébastien Péralta * @author Jens Schauder + * @author Florian Lüdiger */ public abstract class QueryUtils { @@ -121,7 +122,7 @@ public abstract class QueryUtils { builder.append(IDENTIFIER_GROUP); // Entity name, can be qualified (any builder.append("(?:\\sas)*"); // exclude possible "as" keyword builder.append("(?:\\s)+"); // at least one space separating - builder.append("(?!(?:where))(\\w*)"); // the actual alias + builder.append("(?!(?:where|group by|order by))(\\w+)"); // the actual alias ALIAS_MATCH = compile(builder.toString(), CASE_INSENSITIVE); 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 d1a8a976e..80d1032d9 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 @@ -35,6 +35,7 @@ import org.springframework.data.jpa.domain.JpaSort; * @author Thomas Darimont * @author Komi Innocent * @author Christoph Strobl + * @author Florian Lüdiger */ public class QueryUtilsUnitTests { @@ -111,6 +112,11 @@ public class QueryUtilsUnitTests { assertThat(detectAlias("select u from User u"), IS_U); assertThat(detectAlias("select u from com.acme.User u"), IS_U); assertThat(detectAlias("select u from T05User u"), IS_U); + assertThat(detectAlias("select * from User group by name"), isEmptyOrNullString()); + assertThat(detectAlias("select * from User order by name"), isEmptyOrNullString()); + assertThat(detectAlias("select * from User u group by name"), IS_U); + assertThat(detectAlias("select * from User u order by name"), IS_U); + } @Test