Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/model/CrossSectionTrack.java @ 2341:8e2fe935ddf1
Added function to retrieve nearest CrossSectionTrack to a given kilometer.
flys-backend/trunk@2826 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 26 Sep 2011 15:26:44 +0000 |
parents | 47ce1fab8464 |
children | d42249d91f47 |
comparison
equal
deleted
inserted
replaced
2340:c4f090a00178 | 2341:8e2fe935ddf1 |
---|---|
102 "from CrossSectionTrack where river.name =:river"); | 102 "from CrossSectionTrack where river.name =:river"); |
103 query.setParameter("river", river); | 103 query.setParameter("river", river); |
104 | 104 |
105 return query.list(); | 105 return query.list(); |
106 } | 106 } |
107 | |
108 | |
109 /** | |
110 * Returns the nearest CrossSectionTrack of <i>river</i> to a given | |
111 * <i>km</i>. | |
112 * | |
113 * @param river The name of a river. | |
114 * @param km The kilometer value. | |
115 * | |
116 * @return the nearest CrossSectionTrack to <i>km</i> of river <i>river</i>. | |
117 */ | |
118 public static CrossSectionTrack getCrossSectionTrack( | |
119 String river, | |
120 double km | |
121 ) { | |
122 Session session = SessionHolder.HOLDER.get(); | |
123 | |
124 Query query = session.createQuery( | |
125 "from CrossSectionTrack where river.name =:river " + | |
126 "order by abs( km - :mykm)"); | |
127 query.setParameter("river", river); | |
128 query.setParameter("mykm", new BigDecimal(km)); | |
129 | |
130 List<CrossSectionTrack> cst = query.list(); | |
131 | |
132 return cst != null && !cst.isEmpty() ? cst.get(0) : null; | |
133 } | |
107 } | 134 } |
108 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 135 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |