From f320de5583154a5395b2a957d3ea5e849baafce2 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 20 Aug 2022 15:15:42 +0200 Subject: [PATCH] #400 - oder transactions with same date by id (equals creation order) --- .../transactions/TransactionSpecifications.java | 2 +- .../unit/TransactionSpecificationsTest.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java index a1bf41eb9..28a4f313b 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java @@ -122,7 +122,7 @@ public class TransactionSpecifications transferPredicates.add(nameLike); } - query.orderBy(builder.desc(transaction.get(Transaction_.date)), builder.asc(transaction.get(Transaction_.name))); + query.orderBy(builder.desc(transaction.get(Transaction_.date)), builder.desc(transaction.get(Transaction_.ID))); final Predicate predicatesCombined = combinePredicates(predicates, builder); Predicate generalPredicates = builder.and(dateConstraint, predicatesCombined); diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java index e3eeaf724..b3422d40d 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java @@ -474,4 +474,18 @@ class TransactionSpecificationsTest .contains(transferTransaction) .contains(transferTransactionWrongAccount); } + + @Test + void checkOrder() + { + Specification spec = TransactionSpecifications.withDynamicQuery(startDate, LocalDate.now(), account, true, true, true, null, List.of(), List.of(), null); + + List<Transaction> results = transactionRepository.findAll(spec); + assertThat(results).hasSize(5) + .containsExactly(transaction3, + transaction2, + transferTransaction, + transaction1, + repeatingTransaction); + } } \ No newline at end of file -- GitLab