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 3f01ddac2..740b540cf 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 @@ -76,6 +76,7 @@ import org.springframework.util.StringUtils; * @author Jens Schauder * @author Nils Borrmann * @author Reda.Housni-Alaoui + * @author Florian Lüdiger */ public abstract class QueryUtils { @@ -133,7 +134,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 977195f02..5eb3f79e1 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 @@ -38,6 +38,7 @@ import org.springframework.data.jpa.domain.JpaSort; * @author Komi Innocent * @author Christoph Strobl * @author Jens Schauder + * @author Florian Lüdiger */ public class QueryUtilsUnitTests { @@ -114,6 +115,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