Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/model/DischargeTable.java @ 9613:f2473dc34535
Nachtrag Pos. 19: Q calculation with historical discharge tables instead of master discharge table
author | mschaefer |
---|---|
date | Tue, 08 Oct 2019 15:03:24 +0200 |
parents | 491e1a434457 |
children |
comparison
equal
deleted
inserted
replaced
9602:6b2496d71936 | 9613:f2473dc34535 |
---|---|
7 */ | 7 */ |
8 | 8 |
9 package org.dive4elements.river.model; | 9 package org.dive4elements.river.model; |
10 | 10 |
11 import java.io.Serializable; | 11 import java.io.Serializable; |
12 import java.util.ArrayList; | |
12 import java.util.Date; | 13 import java.util.Date; |
13 import java.util.List; | 14 import java.util.List; |
14 | 15 |
15 import javax.persistence.Column; | 16 import javax.persistence.Column; |
16 import javax.persistence.Entity; | 17 import javax.persistence.Entity; |
221 final List<DischargeTable> list = query.list(); | 222 final List<DischargeTable> list = query.list(); |
222 return list.isEmpty() ? null : list.get(0); | 223 return list.isEmpty() ? null : list.get(0); |
223 } | 224 } |
224 | 225 |
225 /** | 226 /** |
227 * Fetches from the database a gauge's historical discharge tables of a time range in chronological order. | |
228 */ | |
229 public static List<DischargeTable> fetchHistoricalDischargeTables(final Gauge gauge, final Date from, final Date to) { | |
230 | |
231 final Session session = SessionHolder.HOLDER.get(); | |
232 | |
233 final Query query = session.createQuery("FROM DischargeTable" | |
234 + " WHERE (kind = 1) AND (gauge.id = :gauge_id)" | |
235 + " AND (timeInterval.startTime <= :to)" | |
236 + " AND ((timeInterval.stopTime IS NULL) OR (timeInterval.stopTime >= :from))" | |
237 + " ORDER BY timeInterval.startTime"); | |
238 | |
239 query.setParameter("gauge_id", gauge.getId()); | |
240 query.setParameter("from", from); | |
241 query.setParameter("to", to); | |
242 final List<DischargeTable> qtables = new ArrayList<>(); | |
243 for (final Object qtable : query.list()) | |
244 qtables.add((DischargeTable) qtable); | |
245 return qtables; | |
246 } | |
247 | |
248 /** | |
226 * Selects from the database the values of a discharge table sorted by W | 249 * Selects from the database the values of a discharge table sorted by W |
227 */ | 250 */ |
228 public static List<DischargeTableValue> fetchValuesSortedByW(final DischargeTable dischargeTable) { | 251 public static List<DischargeTableValue> fetchValuesSortedByW(final DischargeTable dischargeTable) { |
229 final Session session = SessionHolder.HOLDER.get(); | 252 final Session session = SessionHolder.HOLDER.get(); |
230 final Query query = session.createQuery("FROM DischargeTableValue WHERE table_id=:parentid ORDER BY w"); | 253 final Query query = session.createQuery("FROM DischargeTableValue WHERE table_id=:parentid ORDER BY w"); |