gernotbelger@9074: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9074: * Software engineering by gernotbelger@9074: * Björnsen Beratende Ingenieure GmbH gernotbelger@9074: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9074: * gernotbelger@9074: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9074: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9074: * documentation coming with Dive4Elements River for details. gernotbelger@9074: */ gernotbelger@9074: package org.dive4elements.river.artifacts.model; gernotbelger@9074: gernotbelger@9074: import java.util.ArrayList; gernotbelger@9074: import java.util.Iterator; gernotbelger@9074: import java.util.List; gernotbelger@9074: gernotbelger@9074: import org.dive4elements.river.backend.SessionHolder; gernotbelger@9074: import org.dive4elements.river.model.River; gernotbelger@9074: import org.dive4elements.river.model.sinfo.Collision; gernotbelger@9074: import org.hibernate.HibernateException; gernotbelger@9074: import org.hibernate.Query; gernotbelger@9074: import org.hibernate.Session; gernotbelger@9074: import org.hibernate.Transaction; gernotbelger@9074: gernotbelger@9074: /** gernotbelger@9074: * @author Domenico Nardi Tironi gernotbelger@9074: * gernotbelger@9074: */ gernotbelger@9074: public class CollisionHibernateFactory { gernotbelger@9074: gernotbelger@9074: public static List getCollisionsByRiver(final River river) { gernotbelger@9074: final String queryStr = "FROM Collision WHERE river_id = :river_id"; gernotbelger@9074: gernotbelger@9074: final List list = new ArrayList<>(); gernotbelger@9074: gernotbelger@9074: final Session session = SessionHolder.HOLDER.get(); gernotbelger@9074: try { gernotbelger@9074: final Transaction transaction = session.beginTransaction(); gernotbelger@9074: gernotbelger@9074: final Query query = session.createQuery(queryStr); gernotbelger@9074: query.setParameter("river_id", river.getId()); gernotbelger@9074: gernotbelger@9074: final List collisions = query.list(); gernotbelger@9074: final Iterator iterator = collisions.iterator(); gernotbelger@9074: while (iterator.hasNext()) { gernotbelger@9074: final Collision coll = iterator.next(); gernotbelger@9074: // final CollisionHibernateFactory factory = new CollisionHibernateFactory(coll.getId(), coll.getYear()); gernotbelger@9074: list.add(coll); gernotbelger@9074: } gernotbelger@9074: transaction.commit(); // komisch, dass die Iteration davor im Code steht... gernotbelger@9074: } gernotbelger@9074: catch (final HibernateException e) { gernotbelger@9074: e.printStackTrace(); gernotbelger@9074: } gernotbelger@9074: return list; gernotbelger@9074: } gernotbelger@9074: gernotbelger@9074: }