package br.gov.mj.sislegis.app.service.ejbs;
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 javax.persistence.criteria.Root;
import br.gov.mj.sislegis.app.model.TagElaboracaoNormativa;
import br.gov.mj.sislegis.app.service.AbstractPersistence;
import br.gov.mj.sislegis.app.service.TagElaboracaoNormativaService;
@Stateless
public class TagElaboracaoNormativaServiceEjb extends AbstractPersistence<TagElaboracaoNormativa, Long>
implements TagElaboracaoNormativaService {
@PersistenceContext
private EntityManager em;
public TagElaboracaoNormativaServiceEjb() {
super(TagElaboracaoNormativa.class);
}
@Override
protected EntityManager getEntityManager() {
return em;
}
@Override
public List<TagElaboracaoNormativa> buscaTagsElaboracaoNormativa(Long id) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<TagElaboracaoNormativa> c = cb.createQuery(TagElaboracaoNormativa.class);
Root<TagElaboracaoNormativa> ten = c.from(TagElaboracaoNormativa.class);
c.select(ten);
c.where(cb.equal(ten.get("elaboracaoNormativa"), id));
Query query = getEntityManager().createQuery(c);
List<TagElaboracaoNormativa> result = query.getResultList();
return result;
}
@Override
public void deleteTagElaboracaoNormativa(
TagElaboracaoNormativa tagElaboracaoNormativa) {
getEntityManager().createNativeQuery("delete from TagElaboracaoNormativa ten "
+ "where ten.elaboracaoNormativa_id = :id and ten.tag_id =:idTag", TagElaboracaoNormativa.class)
.setParameter("id", tagElaboracaoNormativa.getElaboracaoNormativa().getId())
.setParameter("idTag", tagElaboracaoNormativa.getTag().getTag())
.executeUpdate();
}
}