/* * 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.dataproduction; import com.megatim.apifdxweb.dao.ifaces.referentiel.dataproduction.DataProductionDAO; import com.megatim.fdxcommons.model.dataproduction.DataProduction; import java.util.Optional; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import javax.persistence.TypedQuery; /** * * @author ASUS */ @Stateless public class DataProductionDAOImpl implements DataProductionDAO { @PersistenceContext(name = "fdxPU") EntityManager em; @Override public Class getManagedEntityClass() { return DataProduction.class; } @Override public EntityManager getEntityManager() { return em; } @Override public DataProduction getById(Long id) { Query query = em.createQuery("SELECT d from DataProduction d WHERE d.id = :id"); query.setParameter("id", id); Optional optDataProduction = query.getResultList().stream().findFirst(); return optDataProduction.isPresent() ? optDataProduction.get() : null; } @Override public DataProduction lastProduction(String referentielVersion, String codeTypeFichier) { String jpql = "SELECT d FROM DataProduction d" + " WHERE d.referentielVersion = :referentielVersion AND d.codeTypeFichier = :codeTypeFichier AND" + " d.fileDate = (SELECT MAX(d1.fileDate) FROM DataProduction d1 WHERE d1.referentielVersion = :referentielVersion AND d1.codeTypeFichier = :codeTypeFichier)"; TypedQuery query = em.createQuery(jpql, DataProduction.class) .setParameter("referentielVersion", referentielVersion) .setParameter("codeTypeFichier", codeTypeFichier); Optional optDataProduction = query.getResultList().stream().findFirst(); return optDataProduction.isPresent() ? optDataProduction.get() : null; } }