package persistencia;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.TypedQuery;
@Stateless
public class CategoriaDAOImpl extends BaseDAO<Categoria> implements CategoriaDAO{
private static final String obtenerCatSitioInteres =
"SELECT csi " +
"FROM SitioInteres si JOIN si.categorias csi " +
"WHERE si.id = :idServicio";
private static final String categoriasOfertaQuery =
"SELECT c " +
"FROM Oferta e JOIN e.categorias c " +
"WHERE e.id = :id";
private static final String categoriasEventoQuery =
"SELECT c " +
"FROM Evento e JOIN e.categorias c " +
"WHERE e.id = :id";
@Override
public Categoria buscarPorId(int id) {
Categoria ret = em.find(Categoria.class, id);
return ret;
}
@Override
public List<Categoria> obtenerTodos() {
TypedQuery<Categoria> ret = em.createQuery(
"SELECT c FROM Categoria c", Categoria.class);
return ret.getResultList();
}
@Override
public List<Categoria> obtenerCategoriasDeSitioInteres(int idServicio) {
TypedQuery<Categoria> query = em.createQuery(obtenerCatSitioInteres, Categoria.class);
query.setParameter("idServicio", idServicio);
return query.getResultList();
}
@Override
public List<Categoria> obtenerCategoriaOferta(int idOferta) {
TypedQuery<Categoria> query = em.createQuery(categoriasOfertaQuery, Categoria.class);
query.setParameter("id", idOferta);
return query.getResultList();
}
@Override
public List<Categoria> obtenerCategoriasDeEvento(int idEvento) {
TypedQuery<Categoria> query = em.createQuery(categoriasEventoQuery, Categoria.class);
query.setParameter("id", idEvento);
return query.getResultList(); }
}