package cz.coffei.foodo.data.dao; import cz.coffei.foodo.data.entities.Message; import cz.coffei.foodo.data.entities.Message_; import javax.ejb.Stateless; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import java.util.Objects; /** * Created by jtrantin on 11.9.15. */ @Stateless public class MessageDao { @Inject private EntityManager em; public Message getMessageByType(String type) { Objects.requireNonNull(type); if(type.isEmpty()) throw new IllegalArgumentException("empty type"); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Message> query = cb.createQuery(Message.class); Root<Message> root = query.from(Message.class); query.select(root).where(cb.equal(root.get(Message_.type), type)); TypedQuery<Message> typedQuery = em.createQuery(query); return typedQuery.getSingleResult(); } public void createMessage(Message msg) { em.persist(msg); } public void updateMessage(Message msg) { em.merge(msg); } public void deleteMessage(Message msg) { if(!em.contains(msg)) { msg = em.merge(msg); } em.remove(msg); } }