Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java @ 301:1a00cb4998a8
Implemented a service that retrieves distance information for a specific river.
flys-artifacts/trunk@1660 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 11 Apr 2011 12:54:03 +0000 |
parents | |
children | ea3a438a7021 |
comparison
equal
deleted
inserted
replaced
300:9a0e1289bab6 | 301:1a00cb4998a8 |
---|---|
1 package de.intevation.flys.artifacts.model; | |
2 | |
3 import java.util.List; | |
4 | |
5 import de.intevation.flys.backend.SessionFactoryProvider; | |
6 | |
7 import de.intevation.flys.model.Annotation; | |
8 import de.intevation.flys.model.Range; | |
9 import de.intevation.flys.model.River; | |
10 | |
11 import org.hibernate.SessionFactory; | |
12 import org.hibernate.Session; | |
13 import org.hibernate.Query; | |
14 | |
15 | |
16 /** | |
17 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | |
18 */ | |
19 public class AnnotationsFactory { | |
20 | |
21 public static List<Annotation> getAnnotations(River river) { | |
22 return getAnnotations(river.getName()); | |
23 } | |
24 | |
25 | |
26 public static List<Annotation> getAnnotations(String river) { | |
27 SessionFactory sf = SessionFactoryProvider.getSessionFactory(); | |
28 Session session = sf.openSession(); | |
29 | |
30 try { | |
31 Query rangesQuery = session.createQuery( | |
32 "from Range where river.name=:name"); | |
33 rangesQuery.setParameter("name", river); | |
34 List<Range> ranges = rangesQuery.list(); | |
35 | |
36 Query query = session.createQuery( | |
37 "from Annotation where range in (:ranges)"); | |
38 query.setParameterList("ranges", ranges); | |
39 return query.list(); | |
40 } | |
41 finally { | |
42 session.close(); | |
43 } | |
44 } | |
45 } | |
46 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |