# HG changeset patch # User Sascha L. Teichmann # Date 1326725560 0 # Node ID 8be27b950dbe50edd48bd55c1075dfd42456f256 # Parent c5d83366d0b14c8bdb434f8b0a95488263248312 CrossSection: Added method to extract the lines of a given km range. flys-backend/trunk@3688 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r c5d83366d0b1 -r 8be27b950dbe flys-backend/ChangeLog --- a/flys-backend/ChangeLog Mon Jan 16 14:16:52 2012 +0000 +++ b/flys-backend/ChangeLog Mon Jan 16 14:52:40 2012 +0000 @@ -1,3 +1,9 @@ +2012-01-16 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/model/CrossSection.java(getLines): + Added method to fetch the lines of a cross section in a given interval. + Useful to have chunked access to the lines. + 2012-01-16 Sascha L. Teichmann * src/main/java/de/intevation/flys/model/CrossSectionLine.java diff -r c5d83366d0b1 -r 8be27b950dbe flys-backend/src/main/java/de/intevation/flys/model/CrossSection.java --- a/flys-backend/src/main/java/de/intevation/flys/model/CrossSection.java Mon Jan 16 14:16:52 2012 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/model/CrossSection.java Mon Jan 16 14:52:40 2012 +0000 @@ -16,11 +16,21 @@ import javax.persistence.OrderBy; import javax.persistence.JoinColumn; +import java.math.MathContext; +import java.math.BigDecimal; + +import org.hibernate.Session; +import org.hibernate.Query; + +import de.intevation.flys.backend.SessionHolder; + @Entity @Table(name = "cross_sections") public class CrossSection implements Serializable { + public static final MathContext PRECISION = new MathContext(6); + private Integer id; private River river; private TimeInterval timeInterval; @@ -96,5 +106,17 @@ public void setLines(List lines) { this.lines = lines; } + + public List getLines(double startKm, double endKm) { + Session session = SessionHolder.HOLDER.get(); + Query query = session.createQuery( + "from CrossSectionLine where crossSection=:crossSection " + + "and km between :startKm and :endKm order by km"); + query.setParameter("crossSection", this); + query.setParameter("startKm", new BigDecimal(startKm, PRECISION)); + query.setParameter("endKm", new BigDecimal(endKm, PRECISION)); + + return query.list(); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :