From 4bb829cbd1026ec10dc685277467d30523c90b95 Mon Sep 17 00:00:00 2001
From: Antoine Rey <antoine.rey@free.fr>
Date: Tue, 13 Oct 2015 18:41:18 +0200
Subject: [PATCH] Fix #101 display the pet type when using the JDBC profile

---
 .../petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java     | 3 +++
 .../springframework/samples/petclinic/web/PetValidator.java    | 2 +-
 .../samples/petclinic/service/AbstractClinicServiceTests.java  | 2 ++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java
index 0a471b4..7103dc4 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java
@@ -35,6 +35,7 @@ import org.springframework.samples.petclinic.model.Pet;
 import org.springframework.samples.petclinic.model.PetType;
 import org.springframework.samples.petclinic.model.Visit;
 import org.springframework.samples.petclinic.repository.OwnerRepository;
+import org.springframework.samples.petclinic.util.EntityUtils;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -114,7 +115,9 @@ public class JdbcOwnerRepositoryImpl implements OwnerRepository {
                 params,
                 new JdbcPetVisitExtractor()
         );
+        Collection<PetType> petTypes = getPetTypes();
         for (JdbcPet pet : pets) {
+            pet.setType(EntityUtils.getById(petTypes, PetType.class, pet.getTypeId()));
             owner.addPet(pet);
         }
     }
diff --git a/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java b/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
index 0621c98..5784278 100644
--- a/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
+++ b/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
@@ -58,7 +58,7 @@ public class PetValidator implements Validator {
      */
     @Override
     public boolean supports(Class<?> clazz) {
-        return Pet.class.equals(clazz);
+        return Pet.class.isAssignableFrom(clazz);
     }
 
 
diff --git a/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java b/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java
index 428c285..473acdc 100644
--- a/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/service/AbstractClinicServiceTests.java
@@ -69,6 +69,8 @@ public abstract class AbstractClinicServiceTests {
         Owner owner = this.clinicService.findOwnerById(1);
         assertThat(owner.getLastName()).startsWith("Franklin");
         assertThat(owner.getPets().size()).isEqualTo(1);
+		assertThat(owner.getPets().get(0).getType()).isNotNull();
+		assertThat(owner.getPets().get(0).getType().getName()).isEqualTo("cat");
     }
 
     @Test
-- 
GitLab