Mercurial > hg > LGDataverses
diff src/main/java/edu/harvard/iq/dataverse/DataverseFacetServiceBean.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/DataverseFacetServiceBean.java Tue Sep 08 17:00:21 2015 +0200 @@ -0,0 +1,67 @@ +package edu.harvard.iq.dataverse; + +import edu.harvard.iq.dataverse.util.LruCache; +import java.util.List; +import javax.ejb.Stateless; +import javax.inject.Named; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; + +/** + * + * @author xyang + * @author Michael Bar-Sinai + */ +@Stateless +@Named +public class DataverseFacetServiceBean implements java.io.Serializable { + + public static final LruCache<Long,List<DataverseFacet>> cache = new LruCache(); + + @PersistenceContext(unitName = "VDCNet-ejbPU") + private EntityManager em; + + public List<DataverseFacet> findByDataverseId(Long dataverseId) { + List<DataverseFacet> res = cache.get(dataverseId); + + if ( res == null ) { + Query query = em.createNamedQuery("DataverseFacet.findByDataverseId", DataverseFacet.class); + query.setParameter("dataverseId", dataverseId); + res = query.getResultList(); + cache.put(dataverseId, res); + } + + return res; + } + + public void delete(DataverseFacet dataverseFacet) { + em.remove(em.merge(dataverseFacet)); + cache.invalidate(); + } + + public void deleteFacetsFor( Dataverse d ) { + em.createNamedQuery("DataverseFacet.removeByOwnerId") + .setParameter("ownerId", d.getId()) + .executeUpdate(); + cache.invalidate(d.getId()); + + } + + public void create(int diplayOrder, Long datasetFieldId, Long dataverseId) { + DataverseFacet dataverseFacet = new DataverseFacet(); + + dataverseFacet.setDisplayOrder(diplayOrder); + + DatasetFieldType dsfType = (DatasetFieldType)em.find(DatasetFieldType.class,datasetFieldId); + dataverseFacet.setDatasetFieldType(dsfType); + + Dataverse dataverse = (Dataverse)em.find(Dataverse.class,dataverseId); + dataverseFacet.setDataverse(dataverse); + + dataverse.getDataverseFacets().add(dataverseFacet); + em.persist(dataverseFacet); + } + +} +
