package com.megatim.fdxconsultation.dao.impl.referentiel;
|
|
import com.megatim.fdxcommons.model.referentiel.Routage;
|
import com.megatim.fdxcommons.model.referentiel.RoutageId;
|
import com.megatim.fdxconsultation.dao.ifaces.referentiel.RoutageDAO;
|
import javax.ejb.Stateless;
|
import javax.persistence.EntityManager;
|
import javax.persistence.PersistenceContext;
|
import javax.persistence.Query;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
@Stateless
|
public class RoutageDAOImpl implements RoutageDAO {
|
|
@PersistenceContext(unitName = "fdxConsultationPersistenceUnit")
|
protected EntityManager em;
|
|
public RoutageDAOImpl() {
|
}
|
|
@Override
|
public EntityManager getEntityManager() {
|
return em;
|
}
|
|
@Override
|
public Class<Routage> getManagedEntityClass() {
|
return (Routage.class);
|
}
|
|
@Override
|
public Routage getById(RoutageId id) {
|
|
Query query = getEntityManager().createQuery("SELECT r FROM Routage r"
|
+ " LEFT JOIN FETCH r.groupeNoeudsEnvoi LEFT JOIN FETCH r.groupeNoeudsReception"
|
+ " LEFT JOIN FETCH r.groupeParticipantsEnvoi LEFT JOIN FETCH r.groupeParticipantsReception"
|
+ " LEFT JOIN FETCH r.noeudsEnvoi LEFT JOIN FETCH r.noeudsReception"
|
+ " LEFT JOIN FETCH r.groupeNoeudsReception LEFT JOIN FETCH r.participantsReception"
|
+ " LEFT JOIN FETCH r.groupeParticipantsReception LEFT JOIN FETCH r.participantsEnvoi"
|
+ " WHERE r.referentiel.version = :referentielVersion AND r.typeFichier.code = :codeTypeFichier");
|
|
query.setParameter("codeTypeFichier", id.getTypeFichier());
|
query.setParameter("referentielVersion", id.getReferentiel());
|
|
return (Routage) query
|
.getResultList()
|
.stream()
|
.findFirst()
|
.orElse(null);
|
}
|
}
|