This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to tag demo-4 in repository https://gitbox.apache.org/repos/asf/causeway-app-petclinic.git
commit 460c0fe2066c2c4a587cc72f7d84820475c97719 Author: Dan Haywood <[email protected]> AuthorDate: Thu Jun 27 16:44:14 2024 +0100 allows PetOwner to be deleted if have pending visits (cascade deletion rather than veto) --- .../visit/subscriptions/PetOwner_delete_subscriber.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/module-visit/src/main/java/domainapp/modules/visit/subscriptions/PetOwner_delete_subscriber.java b/module-visit/src/main/java/domainapp/modules/visit/subscriptions/PetOwner_delete_subscriber.java index 85a44f4..7d1c783 100644 --- a/module-visit/src/main/java/domainapp/modules/visit/subscriptions/PetOwner_delete_subscriber.java +++ b/module-visit/src/main/java/domainapp/modules/visit/subscriptions/PetOwner_delete_subscriber.java @@ -8,6 +8,8 @@ import java.util.List; import jakarta.inject.Inject; +import org.apache.causeway.applib.services.repository.RepositoryService; + import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; @@ -21,14 +23,14 @@ public class PetOwner_delete_subscriber { case HIDE: break; case DISABLE: - List<Visit> visits = visitRepository.findByPetOwner(subject); - if (!visits.isEmpty()) { - event.veto("This owner has %d visit%s", visits.size(), (visits.size() == 1 ? "" : "s")); - } break; case VALIDATE: break; case EXECUTING: + List<Visit> visits = visitRepository.findByPetOwner(subject); + for (Visit visit : visits) { + repositoryService.remove(visit); + } break; case EXECUTED: break; @@ -36,4 +38,5 @@ public class PetOwner_delete_subscriber { } @Inject VisitRepository visitRepository; + @Inject RepositoryService repositoryService; }
