package com.megatim.fdxconsultation.dao.impl.settings; import com.bekosoftware.genericdaolayer.dao.impl.AbstractGenericDAO; import com.megatim.fdxconsultation.dao.ifaces.settings.DisplayOptionsDAO; import com.megatim.fdxconsultation.model.settings.DisplayOptions; import java.util.Optional; import javax.enterprise.context.Dependent; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.transaction.Transactional; /** * * @author Gabuntu */ @Dependent public class DisplayOptionsDAOImpl extends AbstractGenericDAO implements DisplayOptionsDAO { @PersistenceContext(unitName = "fdxConsultationPersistenceUnit") protected EntityManager em; @Override public EntityManager getEntityManager() { return em; } @Override public Class getManagedEntityClass() { return DisplayOptions.class; } @Transactional @Override public DisplayOptions current() { Optional optional = em.createQuery("SELECT d from DisplayOptions d") .getResultList() .stream() .findFirst(); return optional.orElse(null); } @Transactional @Override synchronized public DisplayOptions edit(DisplayOptions entity) { DisplayOptions current = current(); if (current == null) { return save(entity); } current.setAuditAPI(entity.getAuditAPI()); current.setStatParticipantAPI(entity.getStatParticipantAPI()); current.setStatPathAPI(entity.getStatPathAPI()); current.setTableauBordAPI(entity.getTableauBordAPI()); current.setSuiviEchangeStandalone(entity.getSuiviEchangeStandalone()); current.setTableauBordStandalone(entity.getTableauBordStandalone()); return save(current); } }