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 90f9dd1d3e60997ae3370e2a4c24425615d3f993..e5c88892e5ec1f997f225426a73bedce1b061b62 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 374595a480d297ff4442518ea7e01321f67d8a14..60e9ef92ab302403923f64d1008318e1a1468bf5 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 b5445d1741aa76af93d63bea8756ba2c00265a33..a0c7b2252ad6ef9b25ffeebf257ef2028c9697e9 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 ec1e91f1bf63d6739adf294beaf7d845a2758b31..655c8e7435eaf764a9200c572955d06a86b4cce7 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 cf0f0a980d8a7f12c6679b272535b22e35732206..fd79bac90ac2e2279d491fadd9049a24d8492656 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 {