EventOrganiserFacade.java 1.44 KB
package fi.insomnia.bortal.facade;

import java.util.List;

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.EventOrganiser;
import fi.insomnia.bortal.model.EventOrganiser_;

@Stateless
@LocalBean
public class EventOrganiserFacade extends GenericFacade<Integer, EventOrganiser> {

	@PersistenceContext
	private EntityManager em;

	public EventOrganiserFacade() {
		super(EventOrganiser.class);
	}

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

	public EventOrganiser findByOrganisation(String organisation) {
		// @NamedQuery(name = "EventOrganiser.findByOrganisation", query =
		// "SELECT e FROM EventOrganiser e WHERE e.organisation = :organisation"),
		CriteriaBuilder cb = em.getCriteriaBuilder();
		CriteriaQuery<EventOrganiser> cq = cb.createQuery(EventOrganiser.class);
		Root<EventOrganiser> root = cq.from(EventOrganiser.class);
		cq.where(cb.equal(root.get(EventOrganiser_.organisation), organisation));

		return getSingleNullableResult(em.createQuery(cq));
	}

	public List<EventOrganiser> findAll()
	{
		CriteriaBuilder cb = em.getCriteriaBuilder();
		CriteriaQuery<EventOrganiser> cq = cb.createQuery(EventOrganiser.class);
		return em.createQuery(cq).getResultList();
	}
}