From e97c9a45d490b06028fab49158b9fcc42ebdb109 Mon Sep 17 00:00:00 2001 From: Mic <misvy@vmware.com> Date: Fri, 1 Feb 2013 09:28:58 +0800 Subject: [PATCH] removed Autowiring at the field level (feedback from Oliver Gierke) --- .../jdbc/JdbcOwnerRepositoryImpl.java | 6 ++---- .../repository/jdbc/JdbcVetRepositoryImpl.java | 6 ++++-- .../repository/jpa/JpaOwnerRepositoryImpl.java | 3 +-- .../SpringDataOwnerRepository.java | 7 +++++++ .../petclinic/service/ClinicServiceImpl.java | 17 +++++++++-------- 5 files changed, 23 insertions(+), 16 deletions(-) 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 90f9dd1..e5c8889 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 @@ -41,8 +41,6 @@ public class JdbcOwnerRepositoryImpl implements OwnerRepository { private VisitRepository visitRepository; - - @Autowired private NamedParameterJdbcTemplate namedParameterJdbcTemplate; private SimpleJdbcInsert insertOwner; @@ -72,9 +70,9 @@ public class JdbcOwnerRepositoryImpl implements OwnerRepository { @Transactional(readOnly = true) public Collection<Owner> findByLastName(String lastName) throws DataAccessException { Map<String, Object> params = new HashMap<String, Object>(); - params.put("lastName", lastName + "%"); + params.put("lastName", lastName); List<Owner> owners = this.namedParameterJdbcTemplate.query( - "SELECT id, first_name, last_name, address, city, telephone FROM owners WHERE last_name like :lastName", + "SELECT id, first_name, last_name, address, city, telephone FROM owners WHERE last_name like :lastName%", params, ParameterizedBeanPropertyRowMapper.newInstance(Owner.class) ); diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java index 374595a..60e9ef9 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java @@ -35,12 +35,14 @@ public class JdbcVetRepositoryImpl implements VetRepository { private final Logger logger = LoggerFactory.getLogger(getClass()); - @Autowired private JdbcTemplate jdbcTemplate; private final List<Vet> vets = new ArrayList<Vet>(); - + @Autowired + public JdbcVetRepositoryImpl(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } /** * Refresh the cache of Vets that the ClinicService is holding. diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java index b5445d1..a0c7b22 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java @@ -6,7 +6,6 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; -import org.hibernate.Hibernate; import org.springframework.samples.petclinic.Owner; import org.springframework.samples.petclinic.repository.OwnerRepository; import org.springframework.stereotype.Repository; @@ -29,7 +28,7 @@ public class JpaOwnerRepositoryImpl implements OwnerRepository { @PersistenceContext private EntityManager em; - + @SuppressWarnings("unchecked") public Collection<Owner> findByLastName(String lastName) { diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepository.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepository.java index ec1e91f..655c8e7 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepository.java @@ -1,5 +1,9 @@ package org.springframework.samples.petclinic.repository.springdatajpa; +import java.util.Collection; + +import org.springframework.dao.DataAccessException; +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.Repository; import org.springframework.samples.petclinic.Owner; import org.springframework.samples.petclinic.repository.OwnerRepository; @@ -10,4 +14,7 @@ import org.springframework.samples.petclinic.repository.OwnerRepository; * @since 15.1.2013 */ public interface SpringDataOwnerRepository extends OwnerRepository, Repository<Owner, Integer> { + + @Query("SELECT owner FROM Owner owner left join fetch owner.pets WHERE owner.lastName LIKE :lastName%") + Collection<Owner> findByLastName(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 cf0f0a9..fd79bac 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java @@ -19,17 +19,18 @@ import org.springframework.transaction.annotation.Transactional; @Service public class ClinicServiceImpl implements ClinicService { - @Autowired private PetRepository petRepository; - - @Autowired private VetRepository vetRepository; - - @Autowired - private OwnerRepository ownerRepository; - + private OwnerRepository ownerRepository; + private VisitRepository visitRepository; + @Autowired - private VisitRepository visitRepository; + public ClinicServiceImpl(PetRepository petRepository, VetRepository vetRepository, OwnerRepository ownerRepository, VisitRepository visitRepository) { + this.petRepository = petRepository; + this.vetRepository = vetRepository; + this.ownerRepository = ownerRepository; + this.visitRepository = visitRepository; + } @Transactional(readOnly=true) public Collection<PetType> findPetTypes() throws DataAccessException { -- GitLab