diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepositoryExt.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepositoryExt.java new file mode 100644 index 000000000..12b65157b --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataOwnerRepositoryExt.java @@ -0,0 +1,24 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import java.util.Collection; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.Repository; +import org.springframework.data.repository.query.Param; +import org.springframework.samples.petclinic.model.Owner; +import org.springframework.samples.petclinic.repository.OwnerRepositoryExt; + +@Qualifier("OwnerRepositoryExt") +public interface SpringDataOwnerRepositoryExt extends OwnerRepositoryExt, Repository { + + @Override + @Query("SELECT DISTINCT owner FROM Owner owner left join fetch owner.pets WHERE owner.lastName LIKE :lastName%") + public Collection findByLastName(@Param("lastName") String lastName); + + @Override + @Query("SELECT owner FROM Owner owner left join fetch owner.pets WHERE owner.id =:id") + public Owner findById(@Param("id") int id); + + +} diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepositoryExt.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepositoryExt.java new file mode 100644 index 000000000..1c38794b0 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepositoryExt.java @@ -0,0 +1,20 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.dao.DataAccessException; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.Repository; +import org.springframework.samples.petclinic.model.Pet; +import org.springframework.samples.petclinic.model.PetType; +import org.springframework.samples.petclinic.repository.PetRepositoryExt; + +@Qualifier("PetRepositoryExt") +public interface SpringDataPetRepositoryExt extends PetRepositoryExt, Repository { + + @Override + @Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name") + List findPetTypes() throws DataAccessException; + +} diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataSpecialtyRepositoryExt.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataSpecialtyRepositoryExt.java new file mode 100644 index 000000000..9361d1a4a --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataSpecialtyRepositoryExt.java @@ -0,0 +1,11 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.repository.Repository; +import org.springframework.samples.petclinic.model.Specialty; +import org.springframework.samples.petclinic.repository.SpecialtyRepositoryExt; + +@Qualifier("SpecialtyRepositoryExt") +public interface SpringDataSpecialtyRepositoryExt extends SpecialtyRepositoryExt, Repository { + +} diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVetRepositoryExt.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVetRepositoryExt.java new file mode 100644 index 000000000..ad880c807 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVetRepositoryExt.java @@ -0,0 +1,11 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.repository.Repository; +import org.springframework.samples.petclinic.model.Vet; +import org.springframework.samples.petclinic.repository.VetRepositoryExt; + +@Qualifier("VetRepositoryExt") +public interface SpringDataVetRepositoryExt extends VetRepositoryExt, Repository { + +} diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVisitRepositoryExt.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVisitRepositoryExt.java new file mode 100644 index 000000000..750373972 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVisitRepositoryExt.java @@ -0,0 +1,11 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.repository.Repository; +import org.springframework.samples.petclinic.model.Visit; +import org.springframework.samples.petclinic.repository.VisitRepositoryExt; + +@Qualifier("VisitRepositoryExt") +public interface SpringDataVisitRepositoryExt extends VisitRepositoryExt, Repository { + +}