/*
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
*/
|
package com.megatim.apifdxweb.dao.impl.referentiel;
|
|
import com.megatim.apifdxweb.dao.ifaces.referentiel.ReferentielDAO;
|
import com.megatim.fdxcommons.model.enumeration.StatutReferentiel;
|
import com.megatim.fdxcommons.model.referentiel.Referentiel;
|
import java.util.List;
|
import java.util.Optional;
|
import javax.ejb.Stateless;
|
import javax.persistence.EntityManager;
|
import javax.persistence.PersistenceContext;
|
import javax.persistence.Query;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
@Stateless
|
public class ReferentielDAOImpl implements ReferentielDAO {
|
|
@PersistenceContext(unitName = "fdxPU")
|
protected EntityManager em;
|
|
|
public ReferentielDAOImpl() {
|
}
|
|
@Override
|
public EntityManager getEntityManager() {
|
return em;
|
}
|
|
@Override
|
public Class<Referentiel> getManagedEntityClass() {
|
return (Referentiel.class);
|
}
|
|
@Override
|
public Referentiel getById(String id) {
|
Query query = em.createQuery("SELECT r from Referentiel r"
|
+ " LEFT JOIN FETCH r.extensionFichiers LEFT JOIN FETCH r.applicationSources "
|
+ " LEFT JOIN FETCH r.routages LEFT JOIN FETCH r.participants"
|
+ " LEFT JOIN FETCH r.validateurFichierConfigurations LEFT JOIN FETCH r.noeuds"
|
+ " LEFT JOIN FETCH r.groupeParticipants LEFT JOIN FETCH r.groupeNoeuds"
|
+ " LEFT JOIN FETCH r.pays"
|
+ " WHERE r.version = :version");
|
query.setParameter("version", id);
|
|
Optional<Referentiel> optionalReferentiel = query.getResultList().stream().findFirst();
|
return optionalReferentiel.isPresent() ? optionalReferentiel.get() : null;
|
}
|
|
@Override
|
public Referentiel findByStatutReferentiel(StatutReferentiel statutReferentiel) {
|
Query query = em.createQuery("SELECT r FROM Referentiel r where r.statutReferentiel = :param");
|
query.setParameter("param", statutReferentiel);
|
|
Optional<Referentiel> optionalRef = ((List<Referentiel>) query.getResultList()).stream().findFirst();
|
return optionalRef.isPresent() ? optionalRef.get() : null;
|
}
|
|
@Override
|
public Referentiel getReferentielEnCours() {
|
Query query = em.createQuery("SELECT r FROM Referentiel r where r.statutReferentiel = :param");
|
query.setParameter("param", StatutReferentiel.EN_COURS);
|
|
Optional<Referentiel> optionalRef = ((List<Referentiel>) query.getResultList()).stream().findFirst();
|
return optionalRef.isPresent() ? optionalRef.get() : null;
|
}
|
|
@Override
|
public void archiverReferentielEncours() {
|
Query query = em.createQuery("UPDATE Referentiel r set statutReferentiel = :nouveauStatut where r.statutReferentiel = :param");
|
query.setParameter("nouveauStatut", StatutReferentiel.ARCHIVE);
|
query.setParameter("param", StatutReferentiel.EN_COURS);
|
|
int nb = query.executeUpdate();
|
}
|
}
|