package org.taobao88.taobao.enterprise.dao.impl;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.taobao88.taobao.enterprise.dao.CountryRegCityDAO;
import org.taobao88.taobao.enterprise.entity.City;
import org.taobao88.taobao.enterprise.entity.Country;
import org.taobao88.taobao.enterprise.entity.Region;
import java.util.List;
/**
* Created by User on 23.06.14.
*/
@Transactional
@Repository("countryRegCityDAO")
public class CountryRegCityDAOImpl implements CountryRegCityDAO{
@Autowired
SessionFactory sessionFactory;
@SuppressWarnings("unchecked")
@Override
public List<Country> getAllCountry() {
return sessionFactory.getCurrentSession().createQuery("from Country").list();
}
@SuppressWarnings("unchecked")
@Override
public List<Region> getAllRegion() {
return sessionFactory.getCurrentSession().createQuery("from Region").list();
}
@SuppressWarnings("unchecked")
@Override
public List<City> getAllCity() {
return sessionFactory.getCurrentSession().createQuery("from City").list();
}
@Override
public Country getCountryByID(int id) {
String query = "from Country where idCountry = "+id;
return (Country) sessionFactory.getCurrentSession().createQuery(query).uniqueResult();
}
@SuppressWarnings("unchecked")
@Override
public List<Region> getRegionsByID(int id) {
String query = "from Region where idCountry = "+id;
return sessionFactory.getCurrentSession().createQuery(query).list();
}
public Region findRegionById(int id) {
return (Region) sessionFactory.getCurrentSession().createQuery("from Region where region_id = :id").setParameter("id", id).uniqueResult();
}
@SuppressWarnings("unchecked")
@Override
public List<City> getCitiessByID(int id) {
String query = "from City where idRegion = "+id;
return sessionFactory.getCurrentSession().createQuery(query).list();
}
public City findCityById(int id) {
return (City) sessionFactory.getCurrentSession().createQuery("from City where city_id = :id").setParameter("id", id).uniqueResult();
}
@Override
public int addCountry(Country country) {
return (int) sessionFactory.getCurrentSession().save(country);
}
@Override
public Country findByName(String countryName) {
return (Country) sessionFactory.getCurrentSession().createQuery("from Country where name = :countryName").setParameter("countryName", countryName).uniqueResult();
}
@Override
public void delete(Country country) {
sessionFactory.getCurrentSession().delete(country);
}
@Override
public void update(Country country) {
sessionFactory.getCurrentSession().update(country);
}
}