mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-17 21:15:50 +00:00
update findAll() method
This commit is contained in:
parent
72fa5102c5
commit
3ee5e912ee
1 changed files with 23 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
||||||
package org.springframework.samples.petclinic.repository.jdbc;
|
package org.springframework.samples.petclinic.repository.jdbc;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -11,10 +12,13 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.dao.DataAccessException;
|
import org.springframework.dao.DataAccessException;
|
||||||
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
||||||
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
||||||
|
import org.springframework.samples.petclinic.model.Owner;
|
||||||
import org.springframework.samples.petclinic.model.Pet;
|
import org.springframework.samples.petclinic.model.Pet;
|
||||||
|
import org.springframework.samples.petclinic.model.PetType;
|
||||||
import org.springframework.samples.petclinic.repository.OwnerRepositoryExt;
|
import org.springframework.samples.petclinic.repository.OwnerRepositoryExt;
|
||||||
import org.springframework.samples.petclinic.repository.PetRepositoryExt;
|
import org.springframework.samples.petclinic.repository.PetRepositoryExt;
|
||||||
import org.springframework.samples.petclinic.repository.VisitRepositoryExt;
|
import org.springframework.samples.petclinic.repository.VisitRepositoryExt;
|
||||||
|
import org.springframework.samples.petclinic.util.EntityUtils;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
|
@ -22,23 +26,36 @@ import org.springframework.stereotype.Repository;
|
||||||
public class JdbcPetRepositoryExtImpl extends JdbcPetRepositoryImpl implements PetRepositoryExt {
|
public class JdbcPetRepositoryExtImpl extends JdbcPetRepositoryImpl implements PetRepositoryExt {
|
||||||
|
|
||||||
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
|
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public JdbcPetRepositoryExtImpl(DataSource dataSource,
|
public JdbcPetRepositoryExtImpl(DataSource dataSource,
|
||||||
@Qualifier("OwnerRepositoryExt") OwnerRepositoryExt ownerRepository,
|
@Qualifier("OwnerRepositoryExt") OwnerRepositoryExt ownerRepository,
|
||||||
@Qualifier("VisitRepositoryExt") VisitRepositoryExt visitRepository) {
|
@Qualifier("VisitRepositoryExt") VisitRepositoryExt visitRepository) {
|
||||||
super(dataSource, ownerRepository, visitRepository);
|
super(dataSource, ownerRepository, visitRepository);
|
||||||
// TODO super () ?
|
|
||||||
this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
|
this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Pet> findAll() throws DataAccessException {
|
public Collection<Pet> findAll() throws DataAccessException {
|
||||||
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
return this.namedParameterJdbcTemplate.query(
|
Collection<Pet> pets = new ArrayList<Pet>();
|
||||||
"SELECT id, name, birth_date, type_id, owner_id FROM pets",
|
Collection<JdbcPet> jdbcPets = new ArrayList<JdbcPet>();
|
||||||
params,
|
jdbcPets = this.namedParameterJdbcTemplate.
|
||||||
BeanPropertyRowMapper.newInstance(Pet.class));
|
query("SELECT pets.id, name, birth_date, type_id, owner_id FROM pets",
|
||||||
|
params,
|
||||||
|
new JdbcPetRowMapper());
|
||||||
|
Collection<PetType> petTypes = this.namedParameterJdbcTemplate.query(
|
||||||
|
"SELECT id, name FROM types ORDER BY name", new HashMap<String, Object>(),
|
||||||
|
BeanPropertyRowMapper.newInstance(PetType.class));
|
||||||
|
Collection<Owner> owners = this.namedParameterJdbcTemplate.query(
|
||||||
|
"SELECT id, first_name, last_name, address, city, telephone FROM owners ORDER BY last_name", new HashMap<String, Object>(),
|
||||||
|
BeanPropertyRowMapper.newInstance(Owner.class));
|
||||||
|
for(JdbcPet jdbcPet : jdbcPets){
|
||||||
|
jdbcPet.setType(EntityUtils.getById(petTypes, PetType.class, jdbcPet.getTypeId()));
|
||||||
|
jdbcPet.setOwner(EntityUtils.getById(owners, Owner.class, jdbcPet.getOwnerId()));
|
||||||
|
pets.add(jdbcPet);
|
||||||
|
}
|
||||||
|
return pets;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue