petclinic-aplcache
Changes
src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcOwnerRepositoryImpl.java 6(+2 -4)
src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcVetRepositoryImpl.java 6(+4 -2)
src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaOwnerRepositoryImpl.java 3(+1 -2)
Details
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 {