From ce6cd9aeb35c0ad2a83ed86ede1d5650a105b4bc Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 1 Dec 2018 22:05:10 +0100 Subject: [PATCH] Fixed #348 - delete database results in error --- .../budgetmaster/entities/Tag.java | 6 ++-- .../services/TransactionService.java | 30 ++++++++++++------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/Tag.java b/src/main/java/de/deadlocker8/budgetmaster/entities/Tag.java index dfcc5de84..86a4afd4c 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/entities/Tag.java +++ b/src/main/java/de/deadlocker8/budgetmaster/entities/Tag.java @@ -62,7 +62,10 @@ public class Tag @Override public String toString() { - return "Tag{ID=" + ID + ", name='" + name + '}'; + return "Tag{" + + "ID=" + ID + + ", name='" + name + '\'' + + '}'; } @Override @@ -78,7 +81,6 @@ public class Tag @Override public int hashCode() { - return Objects.hash(ID, name); } } \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java index 767cfdbfc..f65eb4169 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java @@ -112,16 +112,21 @@ public class TransactionService implements Resetable { if(isDeletable(ID)) { - Transaction transactionToDelete = transactionRepository.findOne(ID); - // handle repeating transactions - if(transactionToDelete.getRepeatingOption() != null) - { - repeatingOptionRepository.delete(transactionToDelete.getRepeatingOption().getID()); - } - else - { - transactionRepository.delete(ID); - } + deleteTransactionInRepo(ID); + } + } + + private void deleteTransactionInRepo(Integer ID) + { + Transaction transactionToDelete = transactionRepository.findOne(ID); + // handle repeating transactions + if(transactionToDelete.getRepeatingOption() != null) + { + repeatingOptionRepository.delete(transactionToDelete.getRepeatingOption().getID()); + } + else + { + transactionRepository.delete(ID); } } @@ -134,7 +139,10 @@ public class TransactionService implements Resetable @Override public void deleteAll() { - transactionRepository.deleteAll(); + for(Transaction transaction : transactionRepository.findAll()) + { + deleteTransactionInRepo(transaction.getID()); + } } @Override -- GitLab