Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/MeasurementFactory.java @ 3308:5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
flys-artifacts/trunk@4997 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 13 Jul 2012 14:25:16 +0000 |
parents | e06036fdf0c7 |
children | 8af1111af180 |
rev | line source |
---|---|
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.model.sq; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 import de.intevation.flys.artifacts.model.DateRange; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 import de.intevation.flys.backend.SedDBSessionHolder; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 import java.util.HashMap; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 import java.util.Map; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 import org.apache.log4j.Logger; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 import org.hibernate.SQLQuery; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 import org.hibernate.Session; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 import org.hibernate.transform.BasicTransformerAdapter; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 import org.hibernate.type.StandardBasicTypes; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 public class MeasurementFactory |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 private static final Logger log = |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 Logger.getLogger(MeasurementFactory.class); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
3292
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
24 public static final String [] GSIEBSATZ = { |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
25 "SIEB01", "SIEB02", "SIEB03", "SIEB04", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
26 "SIEB05", "SIEB06", "SIEB07", "SIEB08", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
27 "SIEB09", "SIEB10", "SIEB11", "SIEB13", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
28 "SIEB13", "SIEB14", "SIEB15", "SIEB16", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
29 "SIEB17", "SIEB18", "SIEB19", "SIEB20", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
30 "SIEB21" |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
31 }; |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
32 |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
33 public static final String [] SSIEBUNG = { |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
34 "RSIEB01", "RSIEB02", "RSIEB03", "RSIEB04", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
35 "RSIEB05", "RSIEB06", "RSIEB07", "RSIEB08", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
36 "RSIEB09", "RSIEB10", "RSIEB11", "RSIEB13", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
37 "RSIEB13", "RSIEB14", "RSIEB15", "RSIEB16", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
38 "RSIEB17", "RSIEB18", "RSIEB19", "RSIEB20", |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
39 "RSIEB21", "REST" |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
40 }; |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
41 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 public static final String SQL_MEASSURE = |
3308
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
43 ("SELECT " + |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 "m.TSAND AS TSAND," + |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 "m.TSCHWEB AS TSCHWEB," + |
3292
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
46 "m.CSCHWEB AS CSCHWEB," + |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
47 "m.Q AS Q," + |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
48 "%GSIEBSATZ%" + |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
49 "%SSIEBUNG%" + |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 "FROM messung m " + |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 "JOIN station s ON m.stationid = s.stationid " + |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 "JOIN gewaesser g ON s.gewaesserid = g.gewaesserid " + |
3292
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
53 "LEFT JOIN GSIEBSATZ gs ON m.gsiebsatzid = gs.gewaesserid " + |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
54 "LEFT JOIN SSIEBUNG ss ON gs.gsiebsatzid = ss.gewaesserid " + |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 "WHERE " + |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 "g.name = :river_name AND " + |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 "s.km BETWEEN :location - 0.001 AND :location + 0.001 AND " + |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
58 "m.datum BETWEEN :from AND :to AND " + |
3308
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
59 "m.Q IS NOT NULL") |
3292
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
60 .replace("%GSIEBSATZ%", projection("gs", GSIEBSATZ)) |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
61 .replace("%SSIEBUNG%", projection("ss", SSIEBUNG)); |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
62 |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
63 private static final String projection( |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
64 String prefix, |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
65 String [] columnNames |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
66 ) { |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
67 StringBuilder sb = new StringBuilder(); |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
68 for (String columnName: columnNames) { |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
69 sb.append(prefix) |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
70 .append('.') |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
71 .append(columnName) |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
72 .append(" AS ") |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
73 .append(columnName) |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
74 .append(','); |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
75 } |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
76 return sb.toString(); |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
77 } |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
78 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 public static final class MeasurementResultTransformer |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
80 extends BasicTransformerAdapter |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
81 { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
82 public static MeasurementResultTransformer INSTANCE = |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
83 new MeasurementResultTransformer(); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
84 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
85 public MeasurementResultTransformer() { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
86 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
87 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
88 @Override |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
89 public Object transformTuple(Object [] tuple, String [] aliases) { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
90 Map<String, Object> map = new HashMap<String, Object>(); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
91 for (int i = 0; i < tuple.length; ++i) { |
3291
b52c4b34ec1b
SQ relation: Do not store null values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
92 if (tuple[i] != null) { |
b52c4b34ec1b
SQ relation: Do not store null values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
93 map.put(aliases[i], tuple[i]); |
b52c4b34ec1b
SQ relation: Do not store null values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
94 } |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
95 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
96 return new Measurement(map); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
97 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 } // class BasicTransformerAdapter |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
99 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 private MeasurementFactory() { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
101 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
103 protected static Measurements load( |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
104 Session session, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 String river, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 double location, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 DateRange dateRange |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 ) { |
3308
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
109 boolean debug = log.isDebugEnabled(); |
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
110 |
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
111 if (debug) { |
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
112 log.debug(SQL_MEASSURE); |
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
113 } |
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
114 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
115 SQLQuery query = session.createSQLQuery(SQL_MEASSURE) |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
116 .addScalar("TSAND", StandardBasicTypes.DOUBLE) |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
117 .addScalar("TSCHWEB", StandardBasicTypes.DOUBLE) |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
118 .addScalar("CSCHWEB", StandardBasicTypes.DOUBLE) |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
119 .addScalar("Q", StandardBasicTypes.DOUBLE); |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
120 |
3292
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
121 for (String siebsatz: GSIEBSATZ) { |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
122 query.addScalar(siebsatz, StandardBasicTypes.DOUBLE); |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
123 } |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
124 |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
125 for (String siebung: SSIEBUNG) { |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
126 query.addScalar(siebung, StandardBasicTypes.DOUBLE); |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
127 } |
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
128 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
129 query.setString("river_name", river); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
130 query.setDouble("location", location); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
131 query.setDate("from", dateRange.getFrom()); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
132 query.setDate("to", dateRange.getTo()); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
133 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
134 query.setResultTransformer(MeasurementResultTransformer.INSTANCE); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
135 |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
136 return new Measurements(query.list()); |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
137 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
138 |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
139 public static Measurements getMeasurements( |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
140 String river, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
141 double location, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
142 DateRange dateRange |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
143 ) { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
144 Session session = SedDBSessionHolder.HOLDER.get(); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
145 try { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
146 return load(session, river, location, dateRange); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
147 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
148 finally { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
149 session.close(); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
150 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
151 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
152 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
153 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |