From ff6d2af900399079e1c3499701462199c83987f2 Mon Sep 17 00:00:00 2001 From: Yannick Brandt Date: Wed, 11 Dec 2024 11:21:41 +0100 Subject: [PATCH] Fix Hql-Queries using CEILING and LN. Closes #3711 --- .../springframework/data/jpa/repository/query/Hql.g4 | 4 +++- .../jpa/repository/query/HqlQueryRendererTests.java | 12 +++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/spring-data-jpa/src/main/antlr4/org/springframework/data/jpa/repository/query/Hql.g4 b/spring-data-jpa/src/main/antlr4/org/springframework/data/jpa/repository/query/Hql.g4 index 728ef8ca2..80e929784 100644 --- a/spring-data-jpa/src/main/antlr4/org/springframework/data/jpa/repository/query/Hql.g4 +++ b/spring-data-jpa/src/main/antlr4/org/springframework/data/jpa/repository/query/Hql.g4 @@ -25,7 +25,7 @@ grammar Hql; * management of complex rules in the generated Visitor. Finally, there are labels applied to rule elements (op=('+'|'-') * to simplify the processing. * - * @author Greg Turnquist + * @author Greg Turnquist, Yannick Brandt * @since 3.1 */ } @@ -1133,6 +1133,7 @@ reservedWord | BY | CASE | CAST + | CEILING | COLLATE | CONTAINS | COUNT @@ -1206,6 +1207,7 @@ reservedWord | LIMIT | LIST | LISTAGG + | LN | LOCAL | LOCAL_DATE | LOCAL_DATETIME 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 99547994e..2f9dd0736 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 @@ -37,7 +37,7 @@ import org.junit.jupiter.params.provider.ValueSource; * * @author Greg Turnquist * @author Christoph Strobl - * @author Mark Paluch + * @author Mark Paluch, Yannick Brandt * @since 3.1 */ class HqlQueryRendererTests { @@ -1509,6 +1509,16 @@ class HqlQueryRendererTests { }); } + @Test + void ceilingFunctionShouldWork() { + assertQuery("select ceiling(1.5) from Element a"); + } + + @Test + void lnFunctionSouldWork() { + assertQuery("select ln(7.5) from Element a"); + } + @Test // GH-2981 void cteWithClauseShouldWork() {