teichmann@5829: package org.dive4elements.river.model; ingo@2810: ingo@2873: import java.util.List; ingo@2873: ingo@2810: import java.io.Serializable; ingo@2810: import java.math.BigDecimal; ingo@2810: ingo@2810: import javax.persistence.Entity; ingo@2810: import javax.persistence.Id; ingo@2810: import javax.persistence.Table; ingo@2810: import javax.persistence.GeneratedValue; ingo@2810: import javax.persistence.Column; ingo@2810: import javax.persistence.SequenceGenerator; ingo@2810: import javax.persistence.GenerationType; ingo@2810: import javax.persistence.JoinColumn; ingo@2810: import javax.persistence.OneToOne; ingo@2810: ingo@2810: import org.apache.log4j.Logger; ingo@2810: ingo@2873: import org.hibernate.Session; ingo@2873: import org.hibernate.Query; ingo@2873: teichmann@5829: import org.dive4elements.river.backend.SessionHolder; ingo@2873: ingo@2810: ingo@2810: @Entity ingo@2810: @Table(name = "bed_height_epoch_values") ingo@2810: public class BedHeightEpochValue ingo@2810: implements Serializable ingo@2810: { ingo@2810: private static Logger logger = ingo@2810: Logger.getLogger(BedHeightEpochValue.class); ingo@2810: ingo@2810: private Integer id; ingo@2810: ingo@2810: private BedHeightEpoch bedHeight; ingo@2810: ingo@2810: private BigDecimal station; ingo@2810: private BigDecimal height; ingo@2810: ingo@2810: ingo@2810: public BedHeightEpochValue() { ingo@2810: } ingo@2810: ingo@2810: public BedHeightEpochValue( ingo@2810: BedHeightEpoch bedHeight, ingo@2810: BigDecimal station, ingo@2810: BigDecimal height ingo@2810: ) { ingo@2810: this.bedHeight = bedHeight; ingo@2810: this.station = station; ingo@2810: this.height = height; ingo@2810: } ingo@2810: ingo@2810: @Id ingo@2810: @SequenceGenerator( ingo@2810: name = "SEQUENCE_BED_EPOCH_VALUE_ID_SEQ", ingo@2810: sequenceName = "BED_EPOCH_VALUES_ID_SEQ", ingo@2810: allocationSize = 1) ingo@2810: @GeneratedValue( ingo@2810: strategy = GenerationType.SEQUENCE, ingo@2810: generator = "SEQUENCE_BED_EPOCH_VALUE_ID_SEQ") ingo@2810: @Column(name = "id") ingo@2810: public Integer getId() { ingo@2810: return id; ingo@2810: } ingo@2810: ingo@2810: public void setId(Integer id) { ingo@2810: this.id = id; ingo@2810: } ingo@2810: ingo@2810: @OneToOne ingo@2810: @JoinColumn(name = "bed_height_epoch_id" ) ingo@2810: public BedHeightEpoch getBedHeight() { ingo@2810: return bedHeight; ingo@2810: } ingo@2810: ingo@2810: public void setBedHeight(BedHeightEpoch bedHeight) { ingo@2810: this.bedHeight = bedHeight; ingo@2810: } ingo@2810: ingo@2810: @Column(name = "station") ingo@2810: public BigDecimal getStation() { ingo@2810: return station; ingo@2810: } ingo@2810: ingo@2810: public void setStation(BigDecimal station) { ingo@2810: this.station = station; ingo@2810: } ingo@2810: ingo@2810: @Column(name = "height") ingo@2810: public BigDecimal getHeight() { ingo@2810: return height; ingo@2810: } ingo@2810: ingo@2810: public void setHeight(BigDecimal height) { ingo@2810: this.height = height; ingo@2810: } ingo@2873: ingo@2873: ingo@2873: public static List getBedHeightEpochValues( ingo@2873: BedHeightEpoch epoch, ingo@2873: double kmLo, ingo@2873: double kmHi ingo@2873: ) { ingo@2873: Session session = SessionHolder.HOLDER.get(); ingo@2873: ingo@2873: Query query = session.createQuery( ingo@2873: "from BedHeightEpochValue where bedHeight=:epoch " + ingo@2873: " and station >= :kmLo and station <= :kmHi"); ingo@2873: ingo@2873: query.setParameter("epoch", epoch); ingo@2873: query.setParameter("kmLo", new BigDecimal(kmLo)); ingo@2873: query.setParameter("kmHi", new BigDecimal(kmHi)); ingo@2873: ingo@2873: return query.list(); ingo@2873: } ingo@2810: } ingo@2810: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :