Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentDensityFactory.java @ 7198:f707ee04ac80
issue1435: Prepare SedimentDensityFactory to delive data by sedimentdesity.id and .year.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Mon, 30 Sep 2013 09:08:50 +0200 |
parents | 1750b4448c0c |
children | 8079e3ba31c9 |
comparison
equal
deleted
inserted
replaced
7197:1750b4448c0c | 7198:f707ee04ac80 |
---|---|
36 " sdv.year AS year " + | 36 " sdv.year AS year " + |
37 " FROM sediment_density sd" + | 37 " FROM sediment_density sd" + |
38 " JOIN rivers r ON sd.river_id = r.id " + | 38 " JOIN rivers r ON sd.river_id = r.id " + |
39 " JOIN sediment_density_values sdv ON sd.id = sdv.sediment_density_id" + | 39 " JOIN sediment_density_values sdv ON sd.id = sdv.sediment_density_id" + |
40 " WHERE r.name = :name"; | 40 " WHERE r.name = :name"; |
41 | |
42 /** Query to get sediment density values and kms by id and year. */ | |
43 private static final String SQL_SELECT_DENSITY_BY_ID_YEAR = | |
44 "SELECT sdv.station AS km, " + | |
45 " sdv.density AS density," + | |
46 " sdv.year AS year " + | |
47 " FROM sediment_density sd" + | |
48 " JOIN sediment_density_values sdv ON sd.id = sdv.sediment_density_id" + | |
49 " WHERE sdv.year = :year AND sd.id = :id"; | |
41 | 50 |
42 private SedimentDensityFactory() {} | 51 private SedimentDensityFactory() {} |
43 | 52 |
44 public static SedimentDensity getSedimentDensity( | 53 public static SedimentDensity getSedimentDensity( |
45 String river, | 54 String river, |
94 } | 103 } |
95 | 104 |
96 density.cleanUp(); | 105 density.cleanUp(); |
97 return density; | 106 return density; |
98 } | 107 } |
108 | |
109 public static SedimentDensity getSedimentDensityUncached( | |
110 int id, | |
111 int year | |
112 ) { | |
113 log.debug("getSedimentDensityUncached id/year"); | |
114 Session session = SessionHolder.HOLDER.get(); | |
115 SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT_DENSITY) | |
116 .addScalar("km", StandardBasicTypes.DOUBLE) | |
117 .addScalar("density", StandardBasicTypes.DOUBLE) | |
118 .addScalar("year", StandardBasicTypes.INTEGER); | |
119 sqlQuery.setInteger("id", id); | |
120 sqlQuery.setInteger("year", year); | |
121 List<Object[]> results = sqlQuery.list(); | |
122 SedimentDensity density = new SedimentDensity(); | |
123 for (Object[] row : results) { | |
124 if (row[0] != null && row[1] != null && row[2] != null) { | |
125 density.addDensity((Double)row[0], (Double)row[1], (Integer)row[2]); | |
126 } | |
127 } | |
128 | |
129 density.cleanUp(); | |
130 return density; | |
131 } | |
99 } | 132 } |
100 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : | 133 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |