package com.megatim.fdxconsultation.daoimpl.documents; import com.bekosoftware.genericdaolayer.dao.impl.AbstractGenericDAO; import com.megatim.fdxcommons.model.enumeration.TypeOperation; import com.megatim.fdxconsultation.dao.ifaces.documents.DocumentDAO; import com.megatim.fdxconsultation.model.documents.Document; import java.util.List; import javax.enterprise.context.Dependent; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; /** * * @author Gabuntu */ @Dependent public class DocumentDAOImpl extends AbstractGenericDAO implements DocumentDAO { @PersistenceContext(unitName = "fdxConsultationPersistenceUnit") protected EntityManager em; @Override public EntityManager getEntityManager() { return em; } @Override public Class getManagedEntityClass() { return Document.class; } @Override public Document getById(Long id) { Query query = getEntityManager().createQuery("SELECT d FROM Document d WHERE d.id = :id AND d.typeOperation = :typeOperation"); query.setParameter("id", id).setParameter("typeOperation", TypeOperation.AJOUTER); List liste = query.getResultList(); return liste != null ? liste.stream().findFirst().get() : null; } @Override public List getByCategory(Long categoryId) { Query query = getEntityManager().createQuery("SELECT d FROM Document d WHERE d.category.id = :id AND d.typeOperation = :typeOperation"); query.setParameter("id", categoryId).setParameter("typeOperation", TypeOperation.AJOUTER); return query.getResultList(); } }