mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-25 01:05:48 +00:00
Separate the VetRepository from the Spring Data Repository
This commit is contained in:
parent
f360094b99
commit
ea698ba161
9 changed files with 53 additions and 24 deletions
|
@ -1,5 +0,0 @@
|
|||
package org.springframework.samples.petclinic.application;
|
||||
|
||||
public class UseCase {
|
||||
|
||||
}
|
|
@ -2,10 +2,8 @@ package org.springframework.samples.petclinic.application;
|
|||
|
||||
import java.util.Collection;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.samples.petclinic.domain.VetRepository;
|
||||
import org.springframework.samples.petclinic.infrastructure.persistence.vet.Vet;
|
||||
import org.springframework.samples.petclinic.infrastructure.persistence.vet.VetRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
|
@ -18,12 +16,11 @@ public class VetService {
|
|||
}
|
||||
|
||||
public Page<Vet> getVetPage(int page, int pageSize) {
|
||||
Pageable pageable = PageRequest.of(page - 1, pageSize);
|
||||
return this.vetRepository.findAll(pageable);
|
||||
return this.vetRepository.getVetPage(page, pageSize);
|
||||
}
|
||||
|
||||
public Collection<Vet> getVets() {
|
||||
return this.vetRepository.findAll();
|
||||
return this.vetRepository.getVets();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
package org.springframework.samples.petclinic.domain;
|
||||
|
||||
public class MyDomain {
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package org.springframework.samples.petclinic.domain;
|
||||
|
||||
import java.util.Collection;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.samples.petclinic.infrastructure.persistence.vet.Vet;
|
||||
|
||||
public interface VetRepository {
|
||||
|
||||
Page<Vet> getVetPage(int page, int pageSize);
|
||||
|
||||
Collection<Vet> getVets();
|
||||
|
||||
}
|
|
@ -35,7 +35,7 @@ import java.util.Collection;
|
|||
* @author Sam Brannen
|
||||
* @author Michael Isvy
|
||||
*/
|
||||
public interface VetRepository extends Repository<Vet, Integer> {
|
||||
public interface VetDataRepository extends Repository<Vet, Integer> {
|
||||
|
||||
/**
|
||||
* Retrieve all <code>Vet</code>s from the data store.
|
|
@ -0,0 +1,30 @@
|
|||
package org.springframework.samples.petclinic.infrastructure.persistence.vet;
|
||||
|
||||
import java.util.Collection;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.samples.petclinic.domain.VetRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public class VetRepositoryImpl implements VetRepository {
|
||||
|
||||
private final VetDataRepository vetDataRepository;
|
||||
|
||||
public VetRepositoryImpl(VetDataRepository vetDataRepository) {
|
||||
this.vetDataRepository = vetDataRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<Vet> getVetPage(int page, int pageSize) {
|
||||
Pageable pageable = PageRequest.of(page - 1, pageSize);
|
||||
return this.vetDataRepository.findAll(pageable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Vet> getVets() {
|
||||
return this.vetDataRepository.findAll();
|
||||
}
|
||||
|
||||
}
|
|
@ -27,7 +27,7 @@ import org.springframework.boot.web.client.RestTemplateBuilder;
|
|||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.RequestEntity;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.samples.petclinic.infrastructure.persistence.vet.VetRepository;
|
||||
import org.springframework.samples.petclinic.infrastructure.persistence.vet.VetDataRepository;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
|
||||
|
@ -37,7 +37,7 @@ class PetClinicIntegrationTests {
|
|||
int port;
|
||||
|
||||
@Autowired
|
||||
private VetRepository vets;
|
||||
private VetDataRepository vets;
|
||||
|
||||
@Autowired
|
||||
private RestTemplateBuilder builder;
|
||||
|
|
|
@ -77,8 +77,7 @@ class VetControllerTests {
|
|||
|
||||
given(this.vetService.getVets()).willReturn(vetsList);
|
||||
|
||||
given(this.vetService.getVetPage(1, 5))
|
||||
.willReturn(new PageImpl<>(vetsList));
|
||||
given(this.vetService.getVetPage(1, 5)).willReturn(new PageImpl<>(vetsList));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ import org.springframework.samples.petclinic.owner.Pet;
|
|||
import org.springframework.samples.petclinic.owner.PetType;
|
||||
import org.springframework.samples.petclinic.owner.Visit;
|
||||
import org.springframework.samples.petclinic.infrastructure.persistence.vet.Vet;
|
||||
import org.springframework.samples.petclinic.infrastructure.persistence.vet.VetRepository;
|
||||
import org.springframework.samples.petclinic.infrastructure.persistence.vet.VetDataRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
@ -67,7 +67,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
* @author Michael Isvy
|
||||
* @author Dave Syer
|
||||
*/
|
||||
@DataJpaTest(includeFilters = @ComponentScan.Filter(Service.class))
|
||||
@DataJpaTest
|
||||
// Ensure that if the mysql profile is active we connect to the real database:
|
||||
@AutoConfigureTestDatabase(replace = Replace.NONE)
|
||||
// @TestPropertySource("/application-postgres.properties")
|
||||
|
@ -77,7 +77,7 @@ class ClinicServiceTests {
|
|||
protected OwnerRepository owners;
|
||||
|
||||
@Autowired
|
||||
protected VetRepository vets;
|
||||
protected VetDataRepository vets;
|
||||
|
||||
Pageable pageable;
|
||||
|
||||
|
|
Loading…
Reference in a new issue