From d37fba0dfca3dbf63a172ef02a7a910764c8ced8 Mon Sep 17 00:00:00 2001 From: MoechtegernMoe Date: Thu, 23 Nov 2023 14:26:04 +0100 Subject: [PATCH] - Delete Button for Owners - on cascade delete for pets --- .../samples/petclinic/owner/OwnerController.java | 13 +++++++------ .../samples/petclinic/owner/OwnerRepository.java | 3 +++ .../resources/templates/owners/ownerDetails.html | 6 ++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index 329c82395..1b7f94847 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -25,12 +25,7 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.InitBinder; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import jakarta.validation.Valid; @@ -144,6 +139,12 @@ class OwnerController { return "redirect:/owners/{ownerId}"; } + @GetMapping("/owners/{ownerId}/delete") + public String deleteOwner(@PathVariable("ownerId") int ownerId) { + this.owners.deleteOwnerById(ownerId); + return "redirect:/owners"; + } + /** * Custom handler for displaying an owner. * @param ownerId the ID of the owner to display diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java index f44449439..b409b2923 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerRepository.java @@ -72,6 +72,9 @@ public interface OwnerRepository extends Repository { */ void save(Owner owner); + @Transactional + void deleteOwnerById(int ownerId); + /** * Returns all the owners from data store **/ diff --git a/src/main/resources/templates/owners/ownerDetails.html b/src/main/resources/templates/owners/ownerDetails.html index 0d85aa2b4..69234b0f3 100644 --- a/src/main/resources/templates/owners/ownerDetails.html +++ b/src/main/resources/templates/owners/ownerDetails.html @@ -34,6 +34,12 @@ Edit Owner + Delete + Owner + + + + Add New Pet