package com.megatim.fdxconsultation.dao.impl.administration; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import com.bekosoftware.genericdaolayer.dao.impl.AbstractGenericDAO; import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer; import com.megatim.fdxcommons.model.enumeration.TypeOperation; import com.megatim.fdxconsultation.dao.ifaces.administration.RoleDAO; import com.megatim.fdxconsultation.model.administration.Role; import java.util.Optional; import javax.enterprise.context.Dependent; /** * * @author DYNABOOK */ @Dependent public class RoleDAOImpl extends AbstractGenericDAO implements RoleDAO { @PersistenceContext(unitName = "fdxConsultationPersistenceUnit") protected EntityManager em; public RoleDAOImpl() { } @Override public EntityManager getEntityManager() { return em; } @Override public Class getManagedEntityClass() { return (Role.class); } @Override public Role getCurrentRole() { RestrictionsContainer requeteur = RestrictionsContainer.newInstance(); requeteur.addEq("typeOperation", TypeOperation.AJOUTER); return filter(requeteur.getPredicats(), null, null, 0, 1).stream().findAny().orElse(null); } @Override public Role getById(Long id) { Optional optional = em.createQuery("SELECT r from Role r " + "WHERE r.id = :id") .setParameter("id", id) .getResultList() .stream() .findFirst(); return optional.isPresent() ? optional.get() : null; } }