package com.fp.armas.portal.dao.registro;

import java.util.Collection;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import com.fp.armas.portal.dao.general.GenericDaoImpl;
import com.fp.armas.portal.model.Tgeneparroquia;

/**
 * Objeto de acceso a datos de la tabla {@link Tgeneparroquia}
 * @author dcruz
 *
 */
public class ParroquiaDao extends GenericDaoImpl<Tgeneparroquia> {

	public ParroquiaDao() {
		super(Tgeneparroquia.class);
	}

	/**
	 * Retorna las parroquias de un canton espec&iacute;fico 
	 * @param countryCode
	 * @param provinceCode
	 * @param cantonCode
	 * @return
	 */
	public Collection<Tgeneparroquia> buscarParroquias(String countryCode, String provinceCode, String cantonCode) {
		CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder();
		CriteriaQuery<Tgeneparroquia> query = cb.createQuery(Tgeneparroquia.class);
		Root<Tgeneparroquia> tparroquiaRoot = query.from(Tgeneparroquia.class);
		query.where(cb.equal(tparroquiaRoot.get("id").get("countrycode"), countryCode), cb.equal(tparroquiaRoot.get("id").get("provincecode"), provinceCode), cb.equal(tparroquiaRoot.get("id").get("cantoncode"), cantonCode));
		query.orderBy(cb.asc(tparroquiaRoot.get("description")));
		return this.getEntityManager().createQuery(query).getResultList();
	}
}
