comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadFactory.java @ 4517:a5e4fae31089

Fixed SQL statements and parameters.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 14 Nov 2012 17:06:51 +0100
parents 60c728e557f4
children af1938d4e957
comparison
equal deleted inserted replaced
4516:de4832ffde2a 4517:a5e4fae31089
72 " AND syv.station BETWEEN :startKm AND :endKm"; 72 " AND syv.station BETWEEN :startKm AND :endKm";
73 73
74 public static final String SQL_SELECT_EPOCHS_DATA = 74 public static final String SQL_SELECT_EPOCHS_DATA =
75 "SELECT" + 75 "SELECT" +
76 " sy.description AS description, " + 76 " sy.description AS description, " +
77 " ti.start_time AS year, " + 77 " ti.start_time AS startYear, " +
78 " ti.stop_time AS endYear, " +
78 " syv.value AS load, " + 79 " syv.value AS load, " +
79 " syv.station AS km " + 80 " syv.station AS km " +
80 " FROM sediment_yield sy" + 81 " FROM sediment_yield sy" +
81 " JOIN rivers r ON sy.river_id = r.id " + 82 " JOIN rivers r ON sy.river_id = r.id " +
82 " JOIN time_intervals ti ON sy.time_interval_id = ti.id" + 83 " JOIN time_intervals ti ON sy.time_interval_id = ti.id" +
192 ) { 193 ) {
193 log.debug("SedimentLoadFactory.getSedimentLoadsUncached"); 194 log.debug("SedimentLoadFactory.getSedimentLoadsUncached");
194 195
195 Session session = SessionHolder.HOLDER.get(); 196 Session session = SessionHolder.HOLDER.get();
196 SQLQuery sqlQuery = null; 197 SQLQuery sqlQuery = null;
197
198 198
199 if (type.equals("single")) { 199 if (type.equals("single")) {
200 sqlQuery = session.createSQLQuery(SQL_SELECT_SINGLES) 200 sqlQuery = session.createSQLQuery(SQL_SELECT_SINGLES)
201 .addScalar("description", StandardBasicTypes.STRING) 201 .addScalar("description", StandardBasicTypes.STRING)
202 .addScalar("year", StandardBasicTypes.DATE); 202 .addScalar("year", StandardBasicTypes.DATE);
252 double endKm, 252 double endKm,
253 int syear, 253 int syear,
254 int eyear 254 int eyear
255 ) { 255 ) {
256 log.debug("SedimentLoadFactory.getSedimentLoadWithDataUncached"); 256 log.debug("SedimentLoadFactory.getSedimentLoadWithDataUncached");
257
258 Session session = SessionHolder.HOLDER.get(); 257 Session session = SessionHolder.HOLDER.get();
259 SQLQuery sqlQuery = null; 258 SQLQuery sqlQuery = null;
260 259
261 Calendar start = Calendar.getInstance(); 260 Calendar start = Calendar.getInstance();
262 start.set(syear, 1, 1); 261 start.set(syear, 1, 1);
287 getValues("fine_middle", sqlQuery, load); 286 getValues("fine_middle", sqlQuery, load);
288 getValues("sand", sqlQuery, load); 287 getValues("sand", sqlQuery, load);
289 getValues("suspended_sediment", sqlQuery, load); 288 getValues("suspended_sediment", sqlQuery, load);
290 getValues("susp_sand_bed", sqlQuery, load); 289 getValues("susp_sand_bed", sqlQuery, load);
291 getValues("susp_sand", sqlQuery, load); 290 getValues("susp_sand", sqlQuery, load);
291
292 return load; 292 return load;
293 } 293 }
294 else if (type.equals("off_epoch")) { 294 else if (type.equals("off_epoch")) {
295 Calendar toStart = Calendar.getInstance(); 295 Calendar toStart = Calendar.getInstance();
296 toStart.set(eyear, 1, 1); 296 toStart.set(eyear, 1, 1);
297 Calendar toEnd = Calendar.getInstance(); 297 Calendar toEnd = Calendar.getInstance();
298 toEnd.set(eyear, 12, 31); 298 toEnd.set(eyear, 12, 31);
299 299
300 sqlQuery = session.createSQLQuery(SQL_SELECT_EPOCHS) 300 sqlQuery = session.createSQLQuery(SQL_SELECT_EPOCHS_DATA)
301 .addScalar("description", StandardBasicTypes.STRING) 301 .addScalar("description", StandardBasicTypes.STRING)
302 .addScalar("start_time", StandardBasicTypes.DATE) 302 .addScalar("startYear", StandardBasicTypes.DATE)
303 .addScalar("stop_time", StandardBasicTypes.DATE) 303 .addScalar("stopYear", StandardBasicTypes.DATE)
304 .addScalar("load", StandardBasicTypes.DOUBLE); 304 .addScalar("load", StandardBasicTypes.DOUBLE)
305 .addScalar("km", StandardBasicTypes.DOUBLE);
305 sqlQuery.setString("name", river); 306 sqlQuery.setString("name", river);
306 sqlQuery.setDouble("startKm", startKm); 307 sqlQuery.setDouble("startKm", startKm);
307 sqlQuery.setDouble("endKm", endKm); 308 sqlQuery.setDouble("endKm", endKm);
308 sqlQuery.setDate("sbegin", start.getTime()); 309 sqlQuery.setDate("sbegin", start.getTime());
309 sqlQuery.setDate("sbegin", end.getTime()); 310 sqlQuery.setDate("send", end.getTime());
310 sqlQuery.setDate("ebegin",toStart.getTime()); 311 sqlQuery.setDate("ebegin",toStart.getTime());
311 sqlQuery.setDate("eend", toEnd.getTime()); 312 sqlQuery.setDate("eend", toEnd.getTime());
312 sqlQuery.setString("grain", "total"); 313 sqlQuery.setString("grain", "total");
313 314
314 List<Object []> results = sqlQuery.list(); 315 List<Object []> results = sqlQuery.list();
363 load.setFineMiddle(km, v); 364 load.setFineMiddle(km, v);
364 } 365 }
365 else if (fraction.equals("suspended_sediment")) { 366 else if (fraction.equals("suspended_sediment")) {
366 load.setSuspSediment(km, v); 367 load.setSuspSediment(km, v);
367 } 368 }
368 else if (fraction.equals("sups_sand")) { 369 else if (fraction.equals("susp_sand")) {
369 load.setSuspSand(km, v); 370 load.setSuspSand(km, v);
370 } 371 }
371 else if (fraction.equals("susp_sand_bed")) { 372 else if (fraction.equals("susp_sand_bed")) {
372 load.setSuspSandBed(km, v); 373 load.setSuspSandBed(km, v);
373 } 374 }

http://dive4elements.wald.intevation.org