From 1d69ece2f892503c184134dd108f97fe2463a243 Mon Sep 17 00:00:00 2001 From: "Greg L. Turnquist" Date: Wed, 15 Mar 2023 09:33:18 -0500 Subject: [PATCH] Verify proper sort handling even if HQL query already has ORDER BY a native function. Introduce test case proving that apply a Sort to an HQL query with an already-existing "order by function()" is handled properly. Resolves #2862. --- .../jpa/repository/query/HqlQueryTransformerTests.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 5dbc29f96..d6050091d 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 @@ -784,6 +784,15 @@ class HqlQueryTransformerTests { + "from foo f", sort)).endsWith("order by f.age desc"); } + @Test // GH-2862 + void sortProperlyAppendsToExistingOrderByWithFunction() { + + assertThat(createQueryFor( + "select e from SampleEntity e where function('nativeFunc', ?1) > 'testVal' order by function('nativeFunc', ?1)", + Sort.by(Sort.Order.desc("age")))).isEqualTo( + "select e from SampleEntity e where function('nativeFunc', ?1) > 'testVal' order by function('nativeFunc', ?1), e.age desc"); + } + private void assertCountQuery(String originalQuery, String countQuery) { assertThat(createCountQueryFor(originalQuery)).isEqualTo(countQuery); }