NewsGroupFacade.java 1019 Bytes
package fi.insomnia.bortal.facade;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.NewsGroup;

@Stateless
@LocalBean
public class NewsGroupFacade extends EventChildGenericFacade<NewsGroup> {

    @PersistenceContext
    private EntityManager em;

    public NewsGroupFacade() {
        super(NewsGroup.class);
    }

    protected EntityManager getEm() {
        return em;
    }

    public NewsGroup findByName(LanEvent e, String name) {
        TypedQuery<NewsGroup> q = em.createQuery("select ng from NewsGroup ng where ng.name = :name", NewsGroup.class);
        q.setParameter("name", name);
        NewsGroup ret = getSingleNullableResult(q);
        if (ret == null) {
            ret = new NewsGroup(e);
            ret.setName(name);
            this.create(ret);
        }
        return ret;
    }

}