view flys-backend/src/main/java/de/intevation/flys/model/DGM.java @ 1236:324cb486db9f

Added relation and hibernate classes for DGMs. flys-backend/trunk@2613 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 31 Aug 2011 07:46:59 +0000
parents
children 2ef8b67bd68a
line wrap: on
line source
package de.intevation.flys.model;

import java.io.Serializable;
import java.util.List;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.hibernate.Session;
import org.hibernate.Query;

import de.intevation.flys.backend.SessionHolder;


@Entity
@Table(name = "dgm")
public class DGM implements Serializable {

    private Integer    id;

    private River      river;

    private BigDecimal lower;
    private BigDecimal upper;

    private String     path;


    public DGM() {
    }


    public void setId(Integer id) {
        this.id = id;
    }

    @Id
    @Column(name = "id")
    public Integer getId() {
        return id;
    }

    public void setRiver(River river) {
        this.river = river;
    }

    @OneToOne
    @JoinColumn(name = "river_id")
    public River getRiver() {
        return river;
    }

    public void setLower(BigDecimal lower) {
        this.lower = lower;
    }

    @Column(name = "lower")
    public BigDecimal getLower() {
        return lower;
    }

    public void setUpper(BigDecimal upper) {
        this.upper = upper;
    }

    @Column(name = "upper")
    public BigDecimal getUpper() {
        return upper;
    }

    public void setPath(String path) {
        this.path = path;
    }

    @Column(name = "path")
    public String getPath() {
        return path;
    }


    public static DGM getDGM(String river, double lower, double upper) {
        Session session = SessionHolder.HOLDER.get();

        Query query = session.createQuery(
            "from DGM where river.name =:river and " +
            "lower <=:lower and upper >=:lower and " +
            "lower <=:upper and upper >=:upper");
        query.setParameter("river", river);
        query.setParameter("lower", new BigDecimal(lower));
        query.setParameter("upper", new BigDecimal(upper));

        List<DGM> result = query.list();

        return result.isEmpty() ? null : result.get(0);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org