diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlCountQueryTransformer.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlCountQueryTransformer.java index a19f971af..f310630d7 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlCountQueryTransformer.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlCountQueryTransformer.java @@ -100,8 +100,13 @@ class HqlCountQueryTransformer extends HqlQueryRenderer { if (ctx.fromClause() != null) { builder.appendExpression(visit(ctx.fromClause())); + if(primaryFromAlias == null) { + builder.append(TOKEN_AS); + builder.append(TOKEN_DOUBLE_UNDERSCORE); + } } + if (ctx.whereClause() != null) { builder.appendExpression(visit(ctx.whereClause())); } diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java index 867e3f87b..40a8c4dc7 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java @@ -919,11 +919,11 @@ class HqlQueryTransformerTests { assertThat(alias("select u from User as u left join u.roles as r")).isEqualTo("u"); } - @Test // GH-2032 + @Test // GH-2032, GH-3792 void countQueryShouldWorkEvenWithoutExplicitAlias() { assertCountQuery("FROM BookError WHERE portal = :portal", - "select count(__) FROM BookError WHERE portal = :portal"); + "select count(__) FROM BookError AS __ WHERE portal = :portal"); assertCountQuery("FROM BookError b WHERE portal = :portal", "select count(b) FROM BookError b WHERE portal = :portal");