/* * 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.fdxconsultation.dao.impl.stats; import com.megatim.fdxconsultation.dao.ifaces.stats.CriteriaEntityPersistedDAO; import com.megatim.fdxconsultation.dao.ifaces.stats.TableConfigurationDAO; import com.megatim.fdxconsultation.model.stats.CriteriaEntityPersisted; import com.megatim.fdxconsultation.model.stats.TableConfiguration; import java.util.Optional; import javax.ejb.EJB; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; /** * * @author ASUS */ @Stateless public class TableConfigurationDAOImpl implements TableConfigurationDAO { @PersistenceContext(unitName = "fdxConsultationPersistenceUnit") protected EntityManager em; @EJB CriteriaEntityPersistedDAO criteriaDao; @Override public Class getManagedEntityClass() { return TableConfiguration.class; } @Override public EntityManager getEntityManager() { return em; } @Override public TableConfiguration getById(Long id) { Query query = em.createQuery("SELECT t FROM TableConfiguration t LEFT JOIN FETCH t.groupingColumns where t.id = :id"); query.setParameter("id", id); Optional optTableConfiguration = query.getResultList().stream().findFirst(); TableConfiguration tableConf = optTableConfiguration.isPresent() ? optTableConfiguration.get() : null; if(tableConf == null) { return null; } if (tableConf.getCriterion() != null) { CriteriaEntityPersisted criterion = criteriaDao.loadSubCriteria(tableConf.getCriterion()); tableConf.setCriterion(criterion); } return tableConf; } }