comparison backend/src/main/java/org/dive4elements/river/model/BedHeight.java @ 9246:c08d5cfa4981

some hibernate queries on bedheigts for salix
author gernotbelger
date Thu, 12 Jul 2018 11:15:42 +0200
parents f5cff8708531
children 3f4215ddd6b4
comparison
equal deleted inserted replaced
9245:f5cff8708531 9246:c08d5cfa4981
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.List; 13 import java.util.List;
13 14
14 import javax.persistence.Column; 15 import javax.persistence.Column;
15 import javax.persistence.Entity; 16 import javax.persistence.Entity;
16 import javax.persistence.GeneratedValue; 17 import javax.persistence.GeneratedValue;
276 277
277 final List<BedHeight> singles = query.list(); 278 final List<BedHeight> singles = query.list();
278 279
279 return ((singles != null) && !singles.isEmpty()) ? singles : null; 280 return ((singles != null) && !singles.isEmpty()) ? singles : null;
280 } 281 }
282
283 public static Range getRangeFromBedHeights(final BedHeight bh) {
284 final List<Range> ranges = new ArrayList<>();
285
286 final Session session = SessionHolder.HOLDER.get();
287
288 final Query query = session.createQuery("FROM Range" + " WHERE id=:range_id)");
289 query.setParameter("range_id", bh.getRange().getId());
290
291 final List<Range> singles = query.list();
292
293 return ((singles != null) && !singles.isEmpty()) ? singles.get(0) : null;
294 }
295
296 public static List<BedHeight> getBedHeightYearEpoch(final boolean isEpoch, final Integer year, final River river, final double lowerKm,
297 final double upperKm) {
298
299 final Session session = SessionHolder.HOLDER.get();
300 final String description = "epoch";
301
302 final StringBuilder builder = new StringBuilder();
303 builder.append("FROM BedHeight");
304 if (isEpoch) {
305 builder.append(" WHERE lower(description) LIKE :description ");
306 } else {
307 builder.append(" WHERE lower(description) NOT LIKE :description ");
308 }
309 builder.append(" AND year =:year");
310
311 builder.append(
312 " AND river=:river AND id IN (SELECT bedHeight.id FROM BedHeightValue WHERE station BETWEEN :kmfrom AND :kmto GROUP BY bedHeight.id )");
313 final Query query = session.createQuery(builder.toString());
314 query.setParameter("river", river);
315 query.setParameter("year", year);
316 query.setParameter("description", "%" + description + "%");
317 query.setParameter("kmfrom", lowerKm);
318 query.setParameter("kmto", upperKm);
319
320 final List<BedHeight> singles = query.list();
321
322 return ((singles != null) && !singles.isEmpty()) ? singles : null;
323 }
281 } 324 }

http://dive4elements.wald.intevation.org