annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/CollisionHibernateFactory.java @ 9074:766890addcb2

state To client communication;
author gernotbelger
date Fri, 18 May 2018 17:26:26 +0200
parents
children
rev   line source
9074
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
2 * Software engineering by
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
5 *
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
9 */
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.model;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
11
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
12 import java.util.ArrayList;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
13 import java.util.Iterator;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
14 import java.util.List;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
15
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.backend.SessionHolder;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.model.River;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.model.sinfo.Collision;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
19 import org.hibernate.HibernateException;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
20 import org.hibernate.Query;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
21 import org.hibernate.Session;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
22 import org.hibernate.Transaction;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
23
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
24 /**
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
25 * @author Domenico Nardi Tironi
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
26 *
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
27 */
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
28 public class CollisionHibernateFactory {
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
29
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
30 public static List<Collision> getCollisionsByRiver(final River river) {
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
31 final String queryStr = "FROM Collision WHERE river_id = :river_id";
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
32
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
33 final List<Collision> list = new ArrayList<>();
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
34
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
35 final Session session = SessionHolder.HOLDER.get();
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
36 try {
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
37 final Transaction transaction = session.beginTransaction();
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
38
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
39 final Query query = session.createQuery(queryStr);
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
40 query.setParameter("river_id", river.getId());
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
41
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
42 final List<Collision> collisions = query.list();
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
43 final Iterator<Collision> iterator = collisions.iterator();
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
44 while (iterator.hasNext()) {
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
45 final Collision coll = iterator.next();
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
46 // final CollisionHibernateFactory factory = new CollisionHibernateFactory(coll.getId(), coll.getYear());
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
47 list.add(coll);
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
48 }
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
49 transaction.commit(); // komisch, dass die Iteration davor im Code steht...
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
50 }
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
51 catch (final HibernateException e) {
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
52 e.printStackTrace();
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
53 }
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
54 return list;
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
55 }
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
56
766890addcb2 state To client communication;
gernotbelger
parents:
diff changeset
57 }

http://dive4elements.wald.intevation.org