view 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
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
 * Software engineering by
 *  Björnsen Beratende Ingenieure GmbH
 *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */
package org.dive4elements.river.artifacts.model;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dive4elements.river.backend.SessionHolder;
import org.dive4elements.river.model.River;
import org.dive4elements.river.model.sinfo.Collision;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 * @author Domenico Nardi Tironi
 *
 */
public class CollisionHibernateFactory {

    public static List<Collision> getCollisionsByRiver(final River river) {
        final String queryStr = "FROM Collision WHERE river_id = :river_id";

        final List<Collision> list = new ArrayList<>();

        final Session session = SessionHolder.HOLDER.get();
        try {
            final Transaction transaction = session.beginTransaction();

            final Query query = session.createQuery(queryStr);
            query.setParameter("river_id", river.getId());

            final List<Collision> collisions = query.list();
            final Iterator<Collision> iterator = collisions.iterator();
            while (iterator.hasNext()) {
                final Collision coll = iterator.next();
                // final CollisionHibernateFactory factory = new CollisionHibernateFactory(coll.getId(), coll.getYear());
                list.add(coll);
            }
            transaction.commit(); // komisch, dass die Iteration davor im Code steht...
        }
        catch (final HibernateException e) {
            e.printStackTrace();
        }
        return list;
    }

}

http://dive4elements.wald.intevation.org