comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/HYKFactory.java @ 8030:fac1aa67931b

Fix for flys/issue1735 (Versatz in den HYK-Dateien)
author Sascha L. Teichmann <teichmann@intevation.de>
date Fri, 11 Jul 2014 11:32:18 +0200
parents af13ceeba52a
children e4606eae8ea5
comparison
equal deleted inserted replaced
8029:cdb9f6d97f6a 8030:fac1aa67931b
146 " e.km AS KM " + 146 " e.km AS KM " +
147 " FROM hyk_formations f INNER JOIN hyk_entries e " + 147 " FROM hyk_formations f INNER JOIN hyk_entries e " +
148 " ON e.id = f.hyk_entry_id " + 148 " ON e.id = f.hyk_entry_id " +
149 " WHERE e.hyk_id = :hykid " + 149 " WHERE e.hyk_id = :hykid " +
150 " AND :km between " + 150 " AND :km between " +
151 " LEAST(e.km, e.km + :flowDir*(f.distance_vl/1000.0+0.001)) " + 151 " LEAST(e.km, e.km + :flowDir*(f.distance_vl/1000.0-0.001)) " +
152 " AND " + 152 " AND " +
153 " GREATEST(e.km, e.km + :flowDir*(f.distance_vl/1000.0+0.001))"; 153 " GREATEST(e.km, e.km + :flowDir*(f.distance_vl/1000.0-0.001))";
154 154
155 SQLQuery sqlQuery = session.createSQLQuery(SQL) 155 SQLQuery sqlQuery = session.createSQLQuery(SQL)
156 .addScalar("FID", StandardBasicTypes.INTEGER) 156 .addScalar("FID", StandardBasicTypes.INTEGER)
157 .addScalar("DIST", StandardBasicTypes.DOUBLE) 157 .addScalar("DIST", StandardBasicTypes.DOUBLE)
158 .addScalar("HID", StandardBasicTypes.INTEGER) 158 .addScalar("HID", StandardBasicTypes.INTEGER)
160 160
161 sqlQuery.setInteger("hykid", hykid); 161 sqlQuery.setInteger("hykid", hykid);
162 sqlQuery.setDouble("flowDir", flowDir); 162 sqlQuery.setDouble("flowDir", flowDir);
163 sqlQuery.setDouble("km", km); 163 sqlQuery.setDouble("km", km);
164 164
165 logger.debug("HYK SQL: " + sqlQuery.getQueryString()); 165 boolean debug = logger.isDebugEnabled();
166
167 if (debug) {
168 logger.debug("HYK SQL: " + sqlQuery.getQueryString());
169 }
166 170
167 List<Object[]> results = sqlQuery.list(); 171 List<Object[]> results = sqlQuery.list();
168 172
169 logger.debug("Found " + results.size() + " HYKFormation IDs in DB."); 173 if (debug) {
174 logger.debug("Found " + results.size() + " HYKFormation IDs in DB.");
175 }
170 176
171 if (results == null || results.isEmpty()) { 177 if (results == null || results.isEmpty()) {
172 logger.debug("No HYK found for ID " + hykid + " at km " + km); 178 if (debug) {
179 logger.debug("No HYK found for ID " + hykid + " at km " + km);
180 }
173 return new ArrayList<HYKFormation>(); 181 return new ArrayList<HYKFormation>();
174 } 182 }
175 183
176 Object[] resultSet = results.get(0); 184 Object[] resultSet = results.get(0);
177 Integer hykFormationId = (Integer) resultSet[0]; 185 Integer hykFormationId = (Integer) resultSet[0];

http://dive4elements.wald.intevation.org