Add Spring Data implementation of extended repositories

This commit is contained in:
Vitaliy Fedoriv 2016-10-28 21:38:12 +03:00
parent a9563d60f0
commit 80aa6ad178
5 changed files with 77 additions and 0 deletions

View file

@ -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<Owner, Integer> {
@Override
@Query("SELECT DISTINCT owner FROM Owner owner left join fetch owner.pets WHERE owner.lastName LIKE :lastName%")
public Collection<Owner> 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);
}

View file

@ -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<Pet, Integer> {
@Override
@Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name")
List<PetType> findPetTypes() throws DataAccessException;
}

View file

@ -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<Specialty, Integer> {
}

View file

@ -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<Vet, Integer> {
}

View file

@ -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<Visit, Integer> {
}