diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java
index c97ea17f2044416db1871e26de94387a0a30ac39..705bb7484f8930523e358cafc6030f8ae5a23ef2 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java
@@ -98,7 +98,7 @@ public class AccountController extends BaseController
 	public String requestDeleteAccount(Model model, @PathVariable("ID") Integer ID)
 	{
 		model.addAttribute(ModelAttributes.ALL_ENTITIES, accountService.getAllEntitiesAsc());
-		model.addAttribute(ModelAttributes.ENTITY_TO_DELETE, accountService.getRepository().getById(ID));
+		model.addAttribute(ModelAttributes.ENTITY_TO_DELETE, accountService.getRepository().getReferenceById(ID));
 		return ReturnValues.DELETE_ENTITY;
 	}
 
@@ -106,7 +106,7 @@ public class AccountController extends BaseController
 	public String deleteAccountAndReferringTransactions(WebRequest request, Model model, @PathVariable("ID") Integer ID)
 	{
 		// at least one account is required (to delete a sole account another one has to be created first)
-		final Account accountToDelete = accountService.getRepository().getById(ID);
+		final Account accountToDelete = accountService.getRepository().getReferenceById(ID);
 		if(accountService.getRepository().findAllByType(AccountType.CUSTOM).size() > 1)
 		{
 			accountService.deleteAccount(ID);
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
index 88e4d83a2fd3f0a66a3f5a1e1b8f668a1b8e06a6..4f2376475dbe7380e5a76e157115ce6d6d16d4bf 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
@@ -243,7 +243,7 @@ public class ChartController extends BaseController
 		}
 
 		model.addAttribute(ModelAttributes.ALL_ENTITIES, chartService.getAllEntitiesAsc());
-		model.addAttribute(ModelAttributes.ENTITY_TO_DELETE, chartService.getRepository().getById(ID));
+		model.addAttribute(ModelAttributes.ENTITY_TO_DELETE, chartService.getRepository().getReferenceById(ID));
 		return ReturnValues.DELETE_ENTITY;
 	}
 
@@ -252,7 +252,7 @@ public class ChartController extends BaseController
 	{
 		if(chartService.isDeletable(ID))
 		{
-			final Chart chartToDelete = chartService.getRepository().getById(ID);
+			final Chart chartToDelete = chartService.getRepository().getReferenceById(ID);
 			chartService.getRepository().deleteById(ID);
 			WebRequestUtils.putNotification(request, new Notification(Localization.getString("notification.chart.delete.success", chartToDelete.getName()), NotificationType.SUCCESS));
 		}
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templategroup/TemplateGroupController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templategroup/TemplateGroupController.java
index da470d698aee61d3e1bed6047aa21f8c40b0f927..0f4ad11cbd2c4fb3c2ba0d5041ed8f79ceb5e41f 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templategroup/TemplateGroupController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templategroup/TemplateGroupController.java
@@ -75,7 +75,7 @@ public class TemplateGroupController extends BaseController
 	@GetMapping("/{ID}/delete")
 	public String deleteTemplateGroup(WebRequest request, @PathVariable("ID") Integer ID)
 	{
-		final TemplateGroup templateGroupToDelete = templateGroupService.getRepository().getById(ID);
+		final TemplateGroup templateGroupToDelete = templateGroupService.getRepository().getReferenceById(ID);
 		templateGroupService.deleteTemplateGroup(ID);
 
 		WebRequestUtils.putNotification(request, new Notification(Localization.getString("notification.template.group.delete.success", templateGroupToDelete.getName()), NotificationType.SUCCESS));
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateController.java
index 8e8dfe510355a4bd8ae02ae20403eab619d51538..d56959c704dc7eaac4bed5acd6e88281364928fb 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateController.java
@@ -125,7 +125,7 @@ public class TemplateController extends BaseController
 	@GetMapping("/{ID}/delete")
 	public String deleteTemplate(WebRequest request, @PathVariable("ID") Integer ID)
 	{
-		final Template templateToDelete = templateService.getRepository().getById(ID);
+		final Template templateToDelete = templateService.getRepository().getReferenceById(ID);
 		templateService.getRepository().deleteById(ID);
 
 		WebRequestUtils.putNotification(request, new Notification(Localization.getString("notification.template.delete.success", templateToDelete.getTemplateName()), NotificationType.SUCCESS));
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateRepository.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateRepository.java
index 9b0607e1c7abeeda64cec06a7c0e7d033369acd3..65671c46e91bf6ac7fe9c67fdf25802182feb0ba 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateRepository.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateRepository.java
@@ -2,7 +2,6 @@ package de.deadlocker8.budgetmaster.templates;
 
 import de.deadlocker8.budgetmaster.accounts.Account;
 import de.deadlocker8.budgetmaster.tags.Tag;
-import de.deadlocker8.budgetmaster.transactions.Transaction;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
index 3c0eb8f48f7c093e4f8d7f5b90279d95bfeb1fcd..c8f919d1feaeddd63d189daa3b0e01653c736f97 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
@@ -103,7 +103,7 @@ public class TransactionController extends BaseController
 
 		LocalDate date = dateService.getDateTimeFromCookie(cookieDate);
 		prepareModelTransactions(filterHelpers.getFilterConfiguration(request), model, date);
-		model.addAttribute(TransactionModelAttributes.ENTITY_TO_DELETE, transactionService.getRepository().getById(ID));
+		model.addAttribute(TransactionModelAttributes.ENTITY_TO_DELETE, transactionService.getRepository().getReferenceById(ID));
 
 		return ReturnValues.DELETE_ENTITY;
 	}
@@ -123,7 +123,7 @@ public class TransactionController extends BaseController
 	@GetMapping("/{ID}/delete")
 	public String deleteTransaction(WebRequest request, @PathVariable("ID") Integer ID)
 	{
-		final Transaction transactionToDelete = transactionService.getRepository().getById(ID);
+		final Transaction transactionToDelete = transactionService.getRepository().getReferenceById(ID);
 		transactionService.deleteTransaction(ID);
 
 		WebRequestUtils.putNotification(request, new Notification(Localization.getString("notification.transaction.delete.success", transactionToDelete.getName()), NotificationType.SUCCESS));
@@ -289,7 +289,7 @@ public class TransactionController extends BaseController
 	@GetMapping("/{ID}/highlight")
 	public String highlight(Model model, @PathVariable("ID") Integer ID)
 	{
-		Transaction transaction = transactionService.getRepository().getById(ID);
+		Transaction transaction = transactionService.getRepository().getReferenceById(ID);
 
 		Account currentAccount = helpers.getCurrentAccount();
 		if(currentAccount.getType() != AccountType.ALL || transaction.isTransfer())