From 786024b52e9ee3c6a44ed0dbaa208beac9ac2d33 Mon Sep 17 00:00:00 2001 From: Shigeru Hagiwara Date: Thu, 1 Feb 2024 06:30:39 +0900 Subject: [PATCH] Fix hql rendering for signed numeric literals. This commit fixes an issue where an extra space is added between the sign and the actual value of signed numerics. Closes: #3342 Original Pull Request: #3343 --- .../data/jpa/repository/query/HqlQueryRenderer.java | 2 +- .../data/jpa/repository/query/HqlQueryRendererTests.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlQueryRenderer.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlQueryRenderer.java index 3510f2100..2a07083eb 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlQueryRenderer.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlQueryRenderer.java @@ -1288,7 +1288,7 @@ class HqlQueryRenderer extends HqlBaseVisitor> { List tokens = new ArrayList<>(); - tokens.add(new JpaQueryParsingToken(ctx.op)); + tokens.add(new JpaQueryParsingToken(ctx.op, false)); tokens.addAll(visit(ctx.numericLiteral())); return tokens; diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryRendererTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryRendererTests.java index 117e0e6cc..5a6135dde 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryRendererTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryRendererTests.java @@ -1635,4 +1635,9 @@ class HqlQueryRendererTests { group by extract(epoch from departureTime) """); } + + @Test + void queryWithSignedNumericLiteralShouldWork() { + assertQuery("select -1"); + } }