override delete() method in SpringData Pet and Visit repositories

This commit is contained in:
Vitaliy Fedoriv 2016-11-09 21:35:11 +02:00
parent af91fbd24d
commit e4499ee645
6 changed files with 61 additions and 2 deletions

View file

@ -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);
}

View file

@ -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<Pet, Integer> {
public interface SpringDataPetRepositoryExt extends PetRepositoryExt, Repository<Pet, Integer>, PetRepositoryExtOverride {
@Override
@Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name")

View file

@ -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();
}
}

View file

@ -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<Visit, Integer> {
public interface SpringDataVisitRepositoryExt extends VisitRepositoryExt, Repository<Visit, Integer>, VisitRepositoryExtOverride {
}

View file

@ -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();
}
}

View file

@ -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);
}