This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 7802667fc CAY-2836 ObjectSelect.selectCount() throws if a query
contains ordering
7802667fc is described below
commit 7802667fc288a1d2e89d90e6893b97b2d24e6d58
Author: Nikita Timofeev <[email protected]>
AuthorDate: Tue Oct 28 17:25:17 2025 +0400
CAY-2836 ObjectSelect.selectCount() throws if a query contains ordering
---
RELEASE-NOTES.txt | 1 +
cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java | 5 ++++-
.../test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java | 8 ++++++++
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 0bcd2458a..c0c3a9579 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -22,6 +22,7 @@ CAY-2897 Add no-op default implementations to the
GraphChangeHandler interface
Bug Fixes:
CAY-2701 MySQL DST-related LocalDateTime issues
+CAY-2836 ObjectSelect.selectCount() throws if a query contains ordering
CAY-2871 QualifierTranslator breaks on a relationship with a compound FK
CAY-2872 CayenneModeler "Documentation" link is broken
CAY-2876 Memory leak in the ObjectStore
diff --git a/cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java
b/cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java
index 5fa6d2c6a..01fb96e30 100644
--- a/cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java
+++ b/cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java
@@ -328,7 +328,10 @@ public class ObjectSelect<T> extends FluentSelect<T,
ObjectSelect<T>> implements
* @return count of rows
*/
public long selectCount(ObjectContext context) {
- return count().selectOne(context);
+ ColumnSelect<Long> count = count();
+ // reset orderings, see CAY-2836
+ count.orderings = List.of();
+ return count.selectOne(context);
}
@Override
diff --git
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
index 6ef648e43..183842bad 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
@@ -246,4 +246,12 @@ public class ObjectSelect_RunIT extends RuntimeCase {
assertNotNull(artist);
}
}
+
+ @Test
+ public void test_CAY_2836_countWithOrdering() {
+ long count = ObjectSelect.query(Artist.class)
+ .orderBy(Artist.ARTIST_NAME.asc())
+ .selectCount(context);
+ assertEquals(20, count);
+ }
}