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 a1bf41eb9a94f8a3bc936ff37f8f1e2ecaab4b00..28a4f313b8805074502f42b52d5b32bf75dcedb6 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 e3eeaf72481448046ecd045473e61be0cc1f0d78..b3422d40d4fd8098fc7464587234783f358823f3 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