Mercurial > hg > LGDataverses
comparison src/main/java/edu/harvard/iq/dataverse/DataverseLinkingServiceBean.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 |
comparison
equal
deleted
inserted
replaced
| 9:5926d6419569 | 10:a50cf11e5178 |
|---|---|
| 1 /* | |
| 2 * To change this license header, choose License Headers in Project Properties. | |
| 3 * To change this template file, choose Tools | Templates | |
| 4 * and open the template in the editor. | |
| 5 */ | |
| 6 package edu.harvard.iq.dataverse; | |
| 7 | |
| 8 import java.util.ArrayList; | |
| 9 import java.util.List; | |
| 10 import javax.ejb.EJB; | |
| 11 import javax.ejb.Stateless; | |
| 12 import javax.inject.Named; | |
| 13 import javax.persistence.EntityManager; | |
| 14 import javax.persistence.PersistenceContext; | |
| 15 import javax.persistence.Query; | |
| 16 import javax.persistence.TypedQuery; | |
| 17 | |
| 18 /** | |
| 19 * | |
| 20 * @author skraffmiller | |
| 21 */ | |
| 22 @Stateless | |
| 23 @Named | |
| 24 public class DataverseLinkingServiceBean implements java.io.Serializable { | |
| 25 | |
| 26 @PersistenceContext(unitName = "VDCNet-ejbPU") | |
| 27 private EntityManager em; | |
| 28 | |
| 29 @EJB | |
| 30 DataverseServiceBean dataverseService; | |
| 31 | |
| 32 | |
| 33 public List<Dataverse> findLinkedDataverses(Long linkingDataverseId) { | |
| 34 List<Dataverse> retList = new ArrayList(); | |
| 35 Query query = em.createQuery("select object(o) from DataverseLinkingDataverse as o where o.linkingDataverse.id =:linkingDataverseId order by o.id"); | |
| 36 query.setParameter("linkingDataverseId", linkingDataverseId); | |
| 37 for (Object o : query.getResultList()) { | |
| 38 DataverseLinkingDataverse convterted = (DataverseLinkingDataverse) o; | |
| 39 retList.add(convterted.getDataverse()); | |
| 40 } | |
| 41 return retList; | |
| 42 } | |
| 43 | |
| 44 public List<Dataverse> findLinkingDataverses(Long dataverseId) { | |
| 45 List<Dataverse> retList = new ArrayList(); | |
| 46 Query query = em.createQuery("select object(o) from DataverseLinkingDataverse as o where o.dataverse.id =:dataverseId order by o.id"); | |
| 47 query.setParameter("dataverseId", dataverseId); | |
| 48 for (Object o : query.getResultList()) { | |
| 49 DataverseLinkingDataverse convterted = (DataverseLinkingDataverse) o; | |
| 50 retList.add(convterted.getLinkingDataverse()); | |
| 51 } | |
| 52 return retList; | |
| 53 } | |
| 54 | |
| 55 public void save(DataverseLinkingDataverse dataverseLinkingDataverse) { | |
| 56 if (dataverseLinkingDataverse.getId() == null) { | |
| 57 em.persist(dataverseLinkingDataverse); | |
| 58 } else { | |
| 59 em.merge(dataverseLinkingDataverse); | |
| 60 } | |
| 61 } | |
| 62 | |
| 63 public boolean alreadyLinked(Dataverse definitionPoint, Dataverse dataverseToLinkTo) { | |
| 64 TypedQuery<DataverseLinkingDataverse> typedQuery = em.createQuery("SELECT OBJECT(o) FROM DataverseLinkingDataverse AS o WHERE o.linkingDataverse.id = :dataverseId AND o.dataverse.id = :dataverseToLinkTo", DataverseLinkingDataverse.class); | |
| 65 typedQuery.setParameter("dataverseId", definitionPoint.getId()); | |
| 66 typedQuery.setParameter("dataverseToLinkTo", dataverseToLinkTo.getId()); | |
| 67 return !typedQuery.getResultList().isEmpty(); | |
| 68 } | |
| 69 } |
