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 :

http://dive4elements.wald.intevation.org