@Override
  @Transactional(
      propagation = Propagation.REQUIRED,
      readOnly = false,
      rollbackFor = PosBusinessException.class)
  public Long add(CityDto cityDto) throws PosBusinessException {
    try {
      City city = cityBuilder.buildCityEntity(cityDto);
      city.setCountry(countryRepository.findOne(cityDto.getCountry_id()));
      city = cityRepository.save(city);

      return city.getId();
    } catch (BuilderException e) {
      throw new PosBusinessException("Error Occurred While saving City", e);
    }
  }
 @Override
 @Transactional(propagation = Propagation.REQUIRED, readOnly = true)
 public List<CityDto> getCitiesByCountry(Long countryId) {
   List<City> cities = cityRepository.findCityByCountryId(countryId);
   return cityBuilder.buildCityDtoList(cities);
 }
 @Override
 @Transactional(propagation = Propagation.REQUIRED, readOnly = true)
 public CityDto getCity(Long id) {
   return cityBuilder.buildCityDto(cityRepository.findOne(id));
 }