Mercurial > hg > LGDataverses
diff src/main/java/edu/harvard/iq/dataverse/TemplateServiceBean.java @ 10:a50cf11e5178
Rewrite LGDataverse completely upgrading to dataverse4.0
| author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
|---|---|
| date | Tue, 08 Sep 2015 17:00:21 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/edu/harvard/iq/dataverse/TemplateServiceBean.java Tue Sep 08 17:00:21 2015 +0200 @@ -0,0 +1,67 @@ +package edu.harvard.iq.dataverse; + +import java.util.List; +import java.util.logging.Logger; +import javax.ejb.EJB; +import javax.ejb.Stateless; +import javax.inject.Named; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; + +/** + * + * @author skraffmiller + */ +@Stateless +@Named +public class TemplateServiceBean { + + private static final Logger logger = Logger.getLogger(DatasetServiceBean.class.getCanonicalName()); + @EJB + IndexServiceBean indexService; + + @PersistenceContext(unitName = "VDCNet-ejbPU") + private EntityManager em; + + public Template find(Object pk) { + return em.find(Template.class, pk); + } + + public Template save(Template template) { + if (template.getId() == null) { + em.persist(template); + return template; + } else { + return em.merge(template); + } + } + + public Template findByDeafultTemplateOwnerId(Long ownerId) { + Query query = em.createQuery("select object(o.defaultTemplate) from Dataverse as o where o.owner.id =:ownerId order by o.name"); + query.setParameter("ownerId", ownerId); + return (Template) query.getSingleResult(); + } + + + public List<Dataverse> findDataversesByDefaultTemplateId(Long defaultTemplateId) { + Query query = em.createQuery("select object(o) from Dataverse as o where o.defaultTemplate.id =:defaultTemplateId order by o.name"); + query.setParameter("defaultTemplateId", defaultTemplateId); + return query.getResultList(); + } + + public void incrementUsageCount(Long templateId) { + + Long usageCount = (Long) em.createNativeQuery( + "select usageCount from Template " + + "WHERE id=" + templateId + ).getSingleResult(); + + usageCount++; + + em.createNativeQuery( + "update Template SET usagecount = " + usageCount + " " + + "WHERE id=" + templateId + ).executeUpdate(); + } +}
