/** Loads the {@link Visit} data for the supplied {@link Pet}. */ private void loadVisits(JdbcPet pet) { final List<Visit> visits = this.simpleJdbcTemplate.query( "SELECT id, visit_date, description FROM visits WHERE pet_id=?", new ParameterizedRowMapper<Visit>() { public Visit mapRow(ResultSet rs, int row) throws SQLException { Visit visit = new Visit(); visit.setId(rs.getInt("id")); visit.setDate(rs.getTimestamp("visit_date")); visit.setDescription(rs.getString("description")); return visit; } }, pet.getId().intValue()); for (Visit visit : visits) { pet.addVisit(visit); } }
public Pet findById(int id) throws DataAccessException { JdbcPet pet; try { Map<String, Object> params = new HashMap<String, Object>(); params.put("id", id); pet = this.namedParameterJdbcTemplate.queryForObject( "SELECT id, name, birth_date, type_id, owner_id FROM pets WHERE id=:id", params, new JdbcPetRowMapper()); } catch (EmptyResultDataAccessException ex) { throw new ObjectRetrievalFailureException(Pet.class, new Integer(id)); } Owner owner = this.ownerRepository.findById(pet.getOwnerId()); owner.addPet(pet); pet.setType(EntityUtils.getById(findPetTypes(), PetType.class, pet.getTypeId())); List<Visit> visits = this.visitRepository.findByPetId(pet.getId()); for (Visit visit : visits) { pet.addVisit(visit); } return pet; }