package br.com.ufrj.msi2.netuno.modelo.servicos;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import br.com.ufrj.msi2.netuno.modelo.entidades.AgenteCarga;
import br.com.ufrj.msi2.netuno.modelo.entidades.ParteCarga;
@Stateless
public class ParteCargaServiceImpl implements ParteCargaService {
private static final long serialVersionUID = -5102370475324194502L;
@PersistenceContext
EntityManager em;
public EntityManager getEm() {
return em;
}
@Override
public CriteriaBuilder getCriteriaBuilder() {
return this.em.getCriteriaBuilder();
}
@Override
public List<ParteCarga> filtrar(CriteriaQuery<ParteCarga> consulta) {
List<ParteCarga> list = em.createQuery(consulta).getResultList();
return list;
}
public void salvar(ParteCarga pCarga) {
em.persist(pCarga);
}
@Override
public ParteCarga obterPorId(Integer id){
return this.em.find(ParteCarga.class, id);
}
@SuppressWarnings("unchecked")
@Override
public List<ParteCarga> listaParteCargasDisponiveis(AgenteCarga agente) {
Query query = em.createNamedQuery("ParteCarga.listaParteCargasParaDesembarque");
query.setParameter("porto", agente.getPertence().getId());
query.setParameter("agente", agente.getId());
return query.getResultList();
}
}