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;
 }

Reply via email to