Mercurial > dive4elements > river
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 } |