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 :

http://dive4elements.wald.intevation.org