EventStatusFacade.java 1.36 KB
package fi.insomnia.bortal.facade;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import fi.insomnia.bortal.enums.EventStatusEnum;
import fi.insomnia.bortal.model.EventStatus;
import fi.insomnia.bortal.model.EventStatus_;

@Stateless
@LocalBean
public class EventStatusFacade extends GenericFacade<Integer, EventStatus> {

	@PersistenceContext
	private EntityManager em;

	public EventStatusFacade() {
		super(EventStatus.class);
	}

	@Override
	protected EntityManager getEm() {
		return em;
	}

	public EventStatus findEventStatus(EventStatusEnum eventStatusEnum) {
		// @NamedQuery(name = "EventStatus.findByStatusName", query =
		// "SELECT e FROM EventStatus e WHERE e.name = :name") })
		CriteriaBuilder cb = em.getCriteriaBuilder();
		CriteriaQuery<EventStatus> cq = cb.createQuery(EventStatus.class);
		Root<EventStatus> root = cq.from(EventStatus.class);
		cq.where(cb.equal(root.get(EventStatus_.name), eventStatusEnum));

		// TypedQuery<EventStatus> q =
		// em.createNamedQuery("EventStatus.findByStatusName",
		// EventStatus.class);
		// q.setParameter("name", eventStatusEnum.name());
		return getSingleNullableResult(em.createQuery(cq));
	}

}