EventFacade.java 1.55 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.model.LanEvent;
import fi.insomnia.bortal.model.LanEvent_;

@Stateless
@LocalBean
public class EventFacade extends GenericFacade<Integer, LanEvent> {

	// private static final Logger logger =
	// LoggerFactory.getLogger(EventFacade.class);
	@PersistenceContext
	private EntityManager em;

	public EventFacade() {
		super(LanEvent.class);
	}

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

	public LanEvent findByHostname(String hostname) {

		CriteriaBuilder cb = em.getCriteriaBuilder();
		CriteriaQuery<LanEvent> cq = cb.createQuery(LanEvent.class);
		Root<LanEvent> root = cq.from(LanEvent.class);
		cq.where(cb.equal(root.get(LanEvent_.eventEnabled), true));

		// TypedQuery<LanEvent> q =
		// em.createNamedQuery("LanEvent.findByReferer", LanEvent.class);
		// q.setParameter("referer", hostname);
		return getSingleNullableResult(em.createQuery(cq));

	}

	public LanEvent findByName(String name) {
		// TypedQuery<LanEvent> q = em.createNamedQuery("LanEvent.findByName",
		// LanEvent.class);
		// q.setParameter("name", name);
		// return getSingleNullableResult(q);
		return this.find(1);
	}

	public String flushCache() {
		getEm().getEntityManagerFactory().getCache().evictAll();
		return "Evicted all!";

	}

}