Mercurial > lada > lada-server
diff src/main/java/de/intevation/lada/data/LProbeRepository.java @ 53:3a00c8fd5a8e
New path in 'proben' REST service: '/details/{id}'. Delivering more detials for a LProbe.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Fri, 24 May 2013 13:39:38 +0200 |
parents | 2d89a04d5ad9 |
children | d57f2aba50e0 |
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/data/LProbeRepository.java Fri May 24 13:38:32 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/LProbeRepository.java Fri May 24 13:39:38 2013 +0200 @@ -12,7 +12,9 @@ import javax.persistence.criteria.Root; import de.intevation.lada.manage.LProbeManager; +import de.intevation.lada.model.LOrt; import de.intevation.lada.model.LProbe; +import de.intevation.lada.model.LProbeDetails; /** * This Container is an interface to request, filter and select LProbe @@ -77,4 +79,22 @@ } return em.createQuery(criteria).getResultList(); } + + public LProbeDetails details(String probeId) { + LProbeDetails details = new LProbeDetails(); + LProbe probe = em.find(LProbe.class, probeId); + if (probe == null) { + return new LProbeDetails(); + } + details.setLprobe(probe); + + CriteriaBuilder cbLorts = em.getCriteriaBuilder(); + CriteriaQuery<LOrt> criteriaLorts = cbLorts.createQuery(LOrt.class); + Root<LOrt> member = criteriaLorts.from(LOrt.class); + criteriaLorts.where(cbLorts.equal(member.get("probeId"), probe.getProbeId())); + List<LOrt> lorts = em.createQuery(criteriaLorts).getResultList(); + details.setLorts(lorts); + + return details; + } }