diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/PetRepositoryExtOverride.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/PetRepositoryExtOverride.java new file mode 100644 index 000000000..d6e2eb2ec --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/PetRepositoryExtOverride.java @@ -0,0 +1,9 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import org.springframework.samples.petclinic.model.Pet; + +public interface PetRepositoryExtOverride { + + public void delete(Pet pet); + +} 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 index 1c38794b0..13d8e31d7 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepositoryExt.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepositoryExt.java @@ -11,7 +11,7 @@ import org.springframework.samples.petclinic.model.PetType; import org.springframework.samples.petclinic.repository.PetRepositoryExt; @Qualifier("PetRepositoryExt") -public interface SpringDataPetRepositoryExt extends PetRepositoryExt, Repository { +public interface SpringDataPetRepositoryExt extends PetRepositoryExt, Repository, PetRepositoryExtOverride { @Override @Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name") diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepositoryExtImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepositoryExtImpl.java new file mode 100644 index 000000000..60add2073 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataPetRepositoryExtImpl.java @@ -0,0 +1,20 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +import org.springframework.samples.petclinic.model.Pet; + +public class SpringDataPetRepositoryExtImpl implements PetRepositoryExtOverride { + + @PersistenceContext + private EntityManager em; + + @Override + public void delete(Pet pet) { + String petId = pet.getId().toString(); + this.em.createQuery("DELETE FROM Visit visit WHERE pet_id=" + petId).executeUpdate(); + this.em.createQuery("DELETE FROM Pet pet WHERE id=" + petId).executeUpdate(); + } + +} 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 index 750373972..ff11bab5c 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVisitRepositoryExt.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVisitRepositoryExt.java @@ -6,6 +6,6 @@ import org.springframework.samples.petclinic.model.Visit; import org.springframework.samples.petclinic.repository.VisitRepositoryExt; @Qualifier("VisitRepositoryExt") -public interface SpringDataVisitRepositoryExt extends VisitRepositoryExt, Repository { +public interface SpringDataVisitRepositoryExt extends VisitRepositoryExt, Repository, VisitRepositoryExtOverride { } diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVisitRepositoryExtImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVisitRepositoryExtImpl.java new file mode 100644 index 000000000..d61f0972a --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/SpringDataVisitRepositoryExtImpl.java @@ -0,0 +1,21 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +import org.springframework.dao.DataAccessException; +import org.springframework.samples.petclinic.model.Visit; + +public class SpringDataVisitRepositoryExtImpl implements VisitRepositoryExtOverride { + + @PersistenceContext + private EntityManager em; + + @Override + public void delete(Visit visit) throws DataAccessException { + String visitId = visit.getId().toString(); + this.em.createQuery("DELETE FROM Visit visit WHERE id=" + visitId).executeUpdate(); + } + + +} diff --git a/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/VisitRepositoryExtOverride.java b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/VisitRepositoryExtOverride.java new file mode 100644 index 000000000..975657649 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/springdatajpa/VisitRepositoryExtOverride.java @@ -0,0 +1,9 @@ +package org.springframework.samples.petclinic.repository.springdatajpa; + +import org.springframework.samples.petclinic.model.Visit; + +public interface VisitRepositoryExtOverride { + + public void delete(Visit visit); + +}