From 078bdc6cfbada99413041d859fdeb3d63685c40b Mon Sep 17 00:00:00 2001
From: Antoine Rey <antoine.rey@gmail.com>
Date: Tue, 28 Jun 2016 18:47:51 +0200
Subject: [PATCH] #149 JdbcPetRepositoryImpl:: findById() simplification

---
 .../repository/jdbc/JdbcPetRepositoryImpl.java | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java
index 885c2bc..74cbc06 100644
--- a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java
@@ -82,26 +82,16 @@ public class JdbcPetRepositoryImpl implements PetRepository {
 
     @Override
     public Pet findById(int id) throws DataAccessException {
-        JdbcPet pet;
+        Integer ownerId;
         try {
             Map<String, Object> params = new HashMap<>();
             params.put("id", id);
-            pet = this.namedParameterJdbcTemplate.queryForObject(
-                "SELECT id, name, birth_date, type_id, owner_id FROM pets WHERE id=:id",
-                params,
-                new JdbcPetRowMapper());
+            ownerId = this.namedParameterJdbcTemplate.queryForObject("SELECT owner_id FROM pets WHERE id=:id", params, Integer.class);
         } catch (EmptyResultDataAccessException ex) {
             throw new ObjectRetrievalFailureException(Pet.class, id);
         }
-        Owner owner = this.ownerRepository.findById(pet.getOwnerId());
-        owner.addPet(pet);
-        pet.setType(EntityUtils.getById(findPetTypes(), PetType.class, pet.getTypeId()));
-
-        List<Visit> visits = this.visitRepository.findByPetId(pet.getId());
-        for (Visit visit : visits) {
-            pet.addVisit(visit);
-        }
-        return pet;
+        Owner owner = this.ownerRepository.findById(ownerId);
+        return EntityUtils.getById(owner.getPets(), Pet.class, id);
     }
 
     @Override
-- 
GitLab