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");

http://dive4elements.wald.intevation.org