Skip to content

Commit 7ea9391

Browse files
christophstroblmp911de
authored andcommitted
Fix regression in HQL parsing when primary alias is missing.
Original pull request: #3793 Closes #3792
1 parent 668c335 commit 7ea9391

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlCountQueryTransformer.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,13 @@ public QueryRendererBuilder visitFromQuery(HqlParser.FromQueryContext ctx) {
100100

101101
if (ctx.fromClause() != null) {
102102
builder.appendExpression(visit(ctx.fromClause()));
103+
if(primaryFromAlias == null) {
104+
builder.append(TOKEN_AS);
105+
builder.append(TOKEN_DOUBLE_UNDERSCORE);
106+
}
103107
}
104108

109+
105110
if (ctx.whereClause() != null) {
106111
builder.appendExpression(visit(ctx.whereClause()));
107112
}

spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -919,11 +919,11 @@ void queryParserPicksCorrectAliasAmidstMultipleAlises() {
919919
assertThat(alias("select u from User as u left join u.roles as r")).isEqualTo("u");
920920
}
921921

922-
@Test // GH-2032
922+
@Test // GH-2032, GH-3792
923923
void countQueryShouldWorkEvenWithoutExplicitAlias() {
924924

925925
assertCountQuery("FROM BookError WHERE portal = :portal",
926-
"select count(__) FROM BookError WHERE portal = :portal");
926+
"select count(__) FROM BookError AS __ WHERE portal = :portal");
927927

928928
assertCountQuery("FROM BookError b WHERE portal = :portal",
929929
"select count(b) FROM BookError b WHERE portal = :portal");

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy