From a994785f73a848058a4bad7b5bb2ef00f1b2fa2c Mon Sep 17 00:00:00 2001 From: Mic <misvy@vmware.com> Date: Tue, 12 Feb 2013 08:22:39 +0800 Subject: [PATCH] made sure the ClinicService facade is used by all Controllers --- .../petclinic/service/ClinicService.java | 5 +++++ .../petclinic/service/ClinicServiceImpl.java | 14 ++++++++++++++ .../samples/petclinic/web/OwnerController.java | 18 +++++++++--------- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java b/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java index c85f1bf..d2a6ebb 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java @@ -19,6 +19,7 @@ import org.springframework.samples.petclinic.Visit; * @author Ken Krebs * @author Juergen Hoeller * @author Sam Brannen + * @author Michael Isvy */ public interface ClinicService { @@ -34,4 +35,8 @@ public interface ClinicService { public Collection<Vet> findVets() throws DataAccessException; + public void saveOwner(Owner owner) throws DataAccessException; + + Collection<Owner> findOwnerByLastName(String lastName) throws DataAccessException; + } diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java index fd79bac..5ab0fba 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java @@ -41,11 +41,25 @@ public class ClinicServiceImpl implements ClinicService { public Owner findOwnerById(int id) throws DataAccessException { return ownerRepository.findById(id); } + + @Override + @Transactional(readOnly=true) + public Collection<Owner> findOwnerByLastName(String lastName) throws DataAccessException { + return ownerRepository.findByLastName(lastName); + } + @Override + @Transactional + public void saveOwner(Owner owner) throws DataAccessException { + ownerRepository.save(owner); + } + + @Transactional public void saveVisit(Visit visit) throws DataAccessException { visitRepository.save(visit); } + @Transactional(readOnly=true) public Pet findPetById(int id) throws DataAccessException { diff --git a/src/main/java/org/springframework/samples/petclinic/web/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/web/OwnerController.java index a7fcfe4..37f5fae 100644 --- a/src/main/java/org/springframework/samples/petclinic/web/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/web/OwnerController.java @@ -7,7 +7,7 @@ import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.samples.petclinic.Owner; -import org.springframework.samples.petclinic.repository.OwnerRepository; +import org.springframework.samples.petclinic.service.ClinicService; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -32,12 +32,12 @@ import org.springframework.web.servlet.ModelAndView; @SessionAttributes(types = Owner.class) public class OwnerController { - private final OwnerRepository ownerRepository; + private final ClinicService clinicService; @Autowired - public OwnerController(OwnerRepository ownerRepository) { - this.ownerRepository = ownerRepository; + public OwnerController(ClinicService clinicService) { + this.clinicService = clinicService; } @InitBinder @@ -58,7 +58,7 @@ public class OwnerController { return "owners/createOrUpdateOwnerForm"; } else { - this.ownerRepository.save(owner); + this.clinicService.saveOwner(owner); status.setComplete(); return "redirect:/owners/" + owner.getId(); } @@ -79,7 +79,7 @@ public class OwnerController { } // find owners by last name - Collection<Owner> results = this.ownerRepository.findByLastName(owner.getLastName()); + Collection<Owner> results = this.clinicService.findOwnerByLastName(owner.getLastName()); if (results.size() < 1) { // no owners found result.rejectValue("lastName", "notFound", "not found"); @@ -99,7 +99,7 @@ public class OwnerController { @RequestMapping(value="/owners/{ownerId}/edit", method = RequestMethod.GET) public String initUpdateOwnerForm(@PathVariable("ownerId") int ownerId, Model model) { - Owner owner = this.ownerRepository.findById(ownerId); + Owner owner = this.clinicService.findOwnerById(ownerId); model.addAttribute(owner); return "owners/createOrUpdateOwnerForm"; } @@ -110,7 +110,7 @@ public class OwnerController { return "owners/createOrUpdateOwnerForm"; } else { - this.ownerRepository.save(owner); + this.clinicService.saveOwner(owner); status.setComplete(); return "redirect:/owners/{ownerId}"; } @@ -125,7 +125,7 @@ public class OwnerController { @RequestMapping("/owners/{ownerId}") public ModelAndView showOwner(@PathVariable("ownerId") int ownerId) { ModelAndView mav = new ModelAndView("owners/ownerDetails"); - mav.addObject(this.ownerRepository.findById(ownerId)); + mav.addObject(this.clinicService.findOwnerById(ownerId)); return mav; } -- GitLab