package cz.coffei.foodo.data.dao; import cz.coffei.foodo.data.entities.PriceConstant; import cz.coffei.foodo.data.entities.PriceConstant_; import javax.ejb.Stateless; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.NoResultException; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; /** * Created by jtrantin on 26.7.15. */ @Stateless public class PriceConstantDao { @Inject private EntityManager em; public PriceConstant getPriceConstant(String name, Integer defaultValue) { if(name==null || name.isEmpty()) throw new IllegalArgumentException("empty name"); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<PriceConstant> query = cb.createQuery(PriceConstant.class); Root<PriceConstant> root = query.from(PriceConstant.class); query.select(root); query.where(cb.equal(cb.lower(root.get(PriceConstant_.name)), name.toLowerCase())); try { return em.createQuery(query).getSingleResult(); } catch (NoResultException e) { if(defaultValue!=null) { return new PriceConstant(name, defaultValue); } throw e; } } public PriceConstant getPriceConstant(String name) { return this.getPriceConstant(name, null); } public void setConstant(PriceConstant constant) { em.merge(constant); } public void deleteconstant(PriceConstant constant) { if(!em.contains(constant)) { constant = em.merge(constant); } em.remove(constant); } }