From 6f8f63a74a32975ff2a864296e4106ee239978e9 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 bccc57328..0795beaf9 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 @@ -1289,7 +1289,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 2f547b718..6c366e84b 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 @@ -1633,4 +1633,9 @@ class HqlQueryRendererTests { group by extract(epoch from departureTime) """); } + + @Test + void queryWithSignedNumericLiteralShouldWork() { + assertQuery("select -1"); + } }