contentservicebean.java.svn-base

来自「EJB3 Annotation Sample」· SVN-BASE 代码 · 共 154 行

SVN-BASE
154
字号
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package com.s7turn.content.session;import com.s7turn.content.entities.Category;import com.s7turn.content.entities.Channel;import com.s7turn.content.entities.Content;import com.s7turn.content.entities.Directory;import com.s7turn.content.entities.SubCategory;import com.s7turn.logging.Logger;import com.s7turn.sdk.content.ContentInfo;import java.util.HashMap;  import java.util.List;import java.util.Map;  import javax.annotation.Resource;import javax.ejb.EJBContext;import javax.ejb.Stateless;import javax.persistence.EntityManager;import javax.persistence.NoResultException;import javax.persistence.PersistenceContext;import javax.persistence.Query;import javax.xml.ws.WebServiceContext;/** * * @author Long */@Statelesspublic class ContentServiceBean implements ContentServiceLocal {       /**     * The EJB Context, used to load the user principal     */    @Resource private EJBContext ctx;        /**     * Web SErvice Context, detect if the user is a SOAP user     */    @Resource private WebServiceContext wsctx;        /**     * The persistence Manager     */    @PersistenceContext(unitName="s7turn-pu")    private EntityManager em;        private final static Logger logger = Logger.getLogger( ContentServiceBean.class );        public ContentInfo loadContent(String viewId, String requestLocal)  {                logger.info( "LoadContent by the view of id %s and locale by %s", viewId, requestLocal );        Query query = em.createNamedQuery("Content.findContentsByResourceId");        query.setParameter("resourceId", viewId);        try{            Content ctt = (Content) query.getSingleResult();            return ctt;        }        catch(NoResultException ex)        {            return null;        }    }    public Map loadInlineContent(String viewId, String requestLocale) {                logger.info( "LoadInlineContent the view of id %s and locale by %s", viewId, requestLocale );                Query query = em.createNamedQuery("Content.findInlineContentsByResourceId");        query.setParameter("resourceId", viewId);        query.setParameter("locale", requestLocale);        try{            List list = query.getResultList();            Map map = new HashMap();            for( Object c : list )            {                ContentInfo ctt = (ContentInfo) c;                map.put(ctt.getContentKey(), ctt.getBody());            }            return map;        }        catch(NoResultException ex)        {            return new HashMap();        }    }    public void save(Content t) {        if( t.getId() == null || new Long(0).equals(  t.getId() ) )        {            em.persist(t);        }        else        {            em.merge(t);        }            }    public void remove(Content t) {        em.remove(em.merge(t));    }    public Content findById(Long id) {        Query q = em.createNamedQuery("Content.findContentById");        q.setParameter("id", id);        try{            return (Content) q.getSingleResult();        }catch(NoResultException e){            return null;        }    }    public List<Content> getAllItems() {        Query q = em.createNamedQuery("Content.findAllContent");        return q.getResultList();    }            public List getContents( Directory dir )    {        Query q = em.createNamedQuery("Content.findContentsInDirectory");        q.setParameter("directory", dir );        return q.getResultList();    }        public List getContents(Channel chn)    {        Query q = em.createNamedQuery("Content.findContentByChannel");        q.setParameter("channel", chn );        return q.getResultList();            }    public List getContents(Channel chn, Category cate)    {        Query q = em.createNamedQuery("Content.findContentByCategory");        q.setParameter("channel", chn );        q.setParameter("category", cate );        return q.getResultList();            }    public List getContents(Channel chn, Category cate, SubCategory sub)    {        Query q = em.createNamedQuery("Content.findContentBySubCategory");        q.setParameter("channel", chn );        q.setParameter("category", cate );        q.setParameter("subCategory", sub );        return q.getResultList();            } }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?