changeset 675:331cd2bb3109

Removed plain sql statements.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 22 May 2015 15:14:08 +0200
parents d61f5ded953d
children ab539e3f186d
files src/main/java/de/intevation/lada/exporter/laf/LafCreator.java src/main/java/de/intevation/lada/importer/laf/AttributeMapper.java
diffstat 2 files changed, 129 insertions(+), 64 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/exporter/laf/LafCreator.java	Fri May 22 15:13:44 2015 +0200
+++ b/src/main/java/de/intevation/lada/exporter/laf/LafCreator.java	Fri May 22 15:14:08 2015 +0200
@@ -24,6 +24,11 @@
 import de.intevation.lada.model.land.LProbe;
 import de.intevation.lada.model.land.LZusatzWert;
 import de.intevation.lada.model.land.ProbeTranslation;
+import de.intevation.lada.model.stamm.MessEinheit;
+import de.intevation.lada.model.stamm.Messgroesse;
+import de.intevation.lada.model.stamm.ProbenZusatz;
+import de.intevation.lada.model.stamm.Probenart;
+import de.intevation.lada.model.stamm.SOrt;
 import de.intevation.lada.util.annotation.RepositoryConfig;
 import de.intevation.lada.util.data.QueryBuilder;
 import de.intevation.lada.util.data.Repository;
@@ -91,11 +96,16 @@
         Response kommentar = repository.filter(kommBuilder.getQuery(), "land");
         List<LKommentarP> kommentare = (List<LKommentarP>)kommentar.getData();
 
-        String nativeQuery = "select probenart from stammdaten.probenart where id= '";
-        nativeQuery += probe.getProbenartId() + "'";
-        Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-        List<String> result = query.getResultList();
-        String probenart = result.get(0);//[0].toString();
+        QueryBuilder<Probenart> builder =
+            new QueryBuilder<Probenart>(
+                repository.entityManager("stamm"),
+                Probenart.class);
+        builder.and("id", probe.getProbenartId());
+        List<Probenart> probenarten =
+            (List<Probenart>)repository.filter(
+                builder.getQuery(),
+                "stamm").getData();
+        String probenart = probenarten.get(0).getProbenart();
 
         QueryBuilder<LZusatzWert> zusatzBuilder =
             new QueryBuilder<LZusatzWert>(
@@ -163,14 +173,19 @@
      */
     @SuppressWarnings("unchecked")
     private String writeZusatzwert(LZusatzWert zw) {
-        String nativeQuery = "select beschreibung, meh_id from stammdaten.proben_zusatz where pzs_id = '";
-        nativeQuery += zw.getPzsId() + "'";
-        Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-        List<Object[]> result = query.getResultList();
+        QueryBuilder<ProbenZusatz> builder =
+            new QueryBuilder<ProbenZusatz>(
+                repository.entityManager("stamm"),
+                ProbenZusatz.class);
+        builder.and("id", zw.getPzsId());
+        List<ProbenZusatz> zusatz =
+            (List<ProbenZusatz>)repository.filter(
+                builder.getQuery(),
+                "stamm").getData();
 
-        String value = "\"" + result.get(0)[0].toString() + "\"";
+        String value = "\"" + zusatz.get(0).getBeschreibung() + "\"";
         value += " " + zw.getMesswertPzs();
-        value += " " + result.get(0)[1].toString();
+        value += " " + zusatz.get(0).getMehId();
         value += " " + zw.getMessfehler();
         return lafLine("PZB_S", value);
     }
@@ -194,24 +209,29 @@
         String laf = "";
         for(LOrt o : orte) {
             laf += "%ORT%\n";
-            String nativeQuery = "select bezeichnung, staat_id, longitude, latitude, gem_id from stammdaten.ort where id = '";
-            nativeQuery += o.getOrt() + "'";
-            Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-            List<Object[]> result = query.getResultList();
+            QueryBuilder<SOrt> oBuilder =
+                new QueryBuilder<SOrt>(
+                    repository.entityManager("stamm"),
+                    SOrt.class);
+            oBuilder.and("id", o.getOrt());
+            List<SOrt> sOrte=
+                (List<SOrt>)repository.filter(
+                    builder.getQuery(),
+                    "stamm").getData();
 
             laf += lafLine("ORT_CODE",
-                "\"" + result.get(0)[0].toString() + "\"");
+                "\"" + sOrte.get(0).getBezeichnung() + "\"");
             laf += lafLine("ORT_TYP", "\"" + o.getOrtsTyp() + "\"");
             laf += o.getOrtszusatztext() == null ? "":
                 lafLine("ORT_ZUSATZTEXT", "\"" + o.getOrtszusatztext() + "\"");
-            laf += lafLine("ORT_LAND_S", String.valueOf(result.get(0)[1].toString()));
+            laf += lafLine("ORT_LAND_S", String.valueOf(sOrte.get(0).getStaatId()));
             String koord = "";
             koord += "05 ";
-            koord += result.get(0)[2].toString() + " ";
-            koord += result.get(0)[3].toString();
+            koord += sOrte.get(0).getLongitude() + " ";
+            koord += sOrte.get(0).getLatitude();
             //TODO: use table koordinatenart and koord*extern!
             laf += lafLine("ORT_KOORDINATEN_S", koord);
-            laf += lafLine("ORT_GEMEINDESCHLUESSEL", result.get(0)[4].toString());
+            laf += lafLine("ORT_GEMEINDESCHLUESSEL", sOrte.get(0).getVerwaltungseinheitId());
         }
         return laf;
     }
@@ -303,17 +323,27 @@
      */
     @SuppressWarnings("unchecked")
     private String writeMesswert(LMesswert mw) {
-        String nativeQuery = "select messgroesse from stammdaten.messgroesse where id = '";
-        nativeQuery += mw.getMessgroesseId() + "'";
-        Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-        List<Object[]> result = query.getResultList();
+        QueryBuilder<Messgroesse> builder =
+            new QueryBuilder<Messgroesse>(
+                repository.entityManager("stamm"),
+                Messgroesse.class);
+        builder.and("id", mw.getMessgroesseId());
+        List<Messgroesse> groessen =
+            (List<Messgroesse>)repository.filter(
+                builder.getQuery(),
+                "stamm").getData();
 
-        String nativeQuery2 = "select einheit from stammdaten.mess_einheit where id = '";
-        nativeQuery2 += mw.getMehId() + "'";
-        Query query2 = repository.entityManager("land").createNativeQuery(nativeQuery2);
-        List<Object[]> result2 = query2.getResultList();
+        QueryBuilder<MessEinheit> eBuilder =
+            new QueryBuilder<MessEinheit>(
+                repository.entityManager("stamm"),
+                MessEinheit.class);
+        eBuilder.and("id", mw.getMehId());
+        List<MessEinheit> einheiten =
+            (List<MessEinheit>)repository.filter(
+                builder.getQuery(),
+                "stamm").getData();
 
-        String value = "\"" + result.get(0) + "\"";
+        String value = "\"" + groessen.get(0).getMessgroesse() + "\"";
         if (mw.getGrenzwertueberschreitung() != null &&
             !mw.getGrenzwertueberschreitung()) {
             value += " <";
@@ -322,7 +352,7 @@
             value += " ";
         }
         value += mw.getMesswert();
-        value += " \"" + result2.get(0) + "\"";
+        value += " \"" + einheiten.get(0).getEinheit() + "\"";
         value += mw.getMessfehler() == null ? " NULL" : " " + mw.getMessfehler();
         value += mw.getNwgZuMesswert() == null ? " NULL" : " " + mw.getNwgZuMesswert();
         value += mw.getGrenzwertueberschreitung() == null ? " N" :
--- a/src/main/java/de/intevation/lada/importer/laf/AttributeMapper.java	Fri May 22 15:13:44 2015 +0200
+++ b/src/main/java/de/intevation/lada/importer/laf/AttributeMapper.java	Fri May 22 15:14:08 2015 +0200
@@ -29,6 +29,12 @@
 import de.intevation.lada.model.land.LZusatzWert;
 import de.intevation.lada.model.land.MessungTranslation;
 import de.intevation.lada.model.land.ProbeTranslation;
+import de.intevation.lada.model.stamm.Datenbasis;
+import de.intevation.lada.model.stamm.MessEinheit;
+import de.intevation.lada.model.stamm.Messgroesse;
+import de.intevation.lada.model.stamm.ProbenZusatz;
+import de.intevation.lada.model.stamm.Probenart;
+import de.intevation.lada.model.stamm.Umwelt;
 import de.intevation.lada.util.annotation.RepositoryConfig;
 import de.intevation.lada.util.data.QueryBuilder;
 import de.intevation.lada.util.data.Repository;
@@ -89,12 +95,17 @@
         }
 
         if ("datenbasis".equals(key) && probe.getDatenbasisId() == null) {
-            String nativeQuery = "select id from stammdaten.datenbasis where datenbasis = '";
-            nativeQuery += value.toString() + "'";
-            Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-            List<Object[]> result = query.getResultList();
+            QueryBuilder<Datenbasis> builder =
+                new QueryBuilder<Datenbasis>(
+                    repository.entityManager("stamm"),
+                    Datenbasis.class);
+            builder.and("datenbasis", value.toString());
+            List<Datenbasis> datenbasis =
+                (List<Datenbasis>)repository.filter(
+                    builder.getQuery(),
+                    "stamm").getData();
 
-            Integer v = Integer.valueOf(result.get(0)[0].toString());
+            Integer v = datenbasis.get(0).getId();
             probe.setDatenbasisId(v);
         }
         else if ("datenbasis".equals(key) && probe.getDatenbasisId() != null){
@@ -169,12 +180,17 @@
             this.warnings.add(new ReportItem(key, value.toString(), 672));
         }
         if ("umweltbereich_c".equals(key) && probe.getUmwId() == null) {
-            String nativeQuery = "select id from stammdaten.umwelt where umwelt_bereich= '";
+            QueryBuilder<Umwelt> builder =
+                new QueryBuilder<Umwelt>(
+                    repository.entityManager("stamm"),
+                    Umwelt.class);
             int length = value.toString().length() > 80 ? 80 : value.toString().length();
-            nativeQuery += value.toString().substring(0, length) + "'";
-            Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-            List<Object[]> result = query.getResultList();
-            probe.setUmwId(result.get(0)[0].toString());
+            builder.and("umweltBereich", value.toString().substring(0, length));
+            List<Umwelt> umwelt =
+                (List<Umwelt>)repository.filter(
+                    builder.getQuery(),
+                    "stamm").getData();
+            probe.setUmwId(umwelt.get(0).getId());
         }
         else if ("umweltbereich_c".equals(key) && probe.getUmwId() != null){
             this.warnings.add(new ReportItem(key, value.toString(), 672));
@@ -198,11 +214,16 @@
         }
 
         if ("probenart".equals(key)) {
-            String nativeQuery = "select id from stammdaten.probenart where probenart = '";
-            nativeQuery += value.toString() + "'";
-            Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-            List<Object> result = query.getResultList();
-            probe.setProbenartId(Integer.valueOf(result.get(0).toString()));
+            QueryBuilder<Probenart> builder =
+                new QueryBuilder<Probenart>(
+                    repository.entityManager("stamm"),
+                    Probenart.class);
+            builder.and("probenart", value.toString());
+            List<Probenart> probenart =
+                (List<Probenart>)repository.filter(
+                    builder.getQuery(),
+                    "stamm").getData();
+            probe.setProbenartId(probenart.get(0).getId());
         }
         return probe;
     }
@@ -399,30 +420,39 @@
             float fWert = Float.valueOf(wert);
             messwert.setMesswert(fWert);
 
-            String nativeQuery = "select id from stammdaten.mess_einheit where einheit = '";
-            nativeQuery += einheit + "'";
-            Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-            List<Object> result = query.getResultList();
-
-            if (result.isEmpty()) {
+            QueryBuilder<MessEinheit> builder =
+                new QueryBuilder<MessEinheit>(
+                    repository.entityManager("stamm"),
+                    MessEinheit.class);
+            builder.and("einheit", einheit);
+            List<MessEinheit> messeinheit =
+                (List<MessEinheit>)repository.filter(
+                    builder.getQuery(),
+                    "stamm").getData();
+            if (messeinheit.isEmpty()) {
                 this.errors.add(new ReportItem("messeinheit", "null", 673));
                 return null;
             }
             else {
-                messwert.setMehId((Integer)result.get(0));
+                messwert.setMehId(messeinheit.get(0).getId());
             }
 
-            String nativeQuery2 = "select id from stammdaten.messgroesse where messgroesse = '";
-            nativeQuery2 += messgroesse + "'";
-            Query query2 = repository.entityManager("land").createNativeQuery(nativeQuery2);
-            List<Object> result2 = query2.getResultList();
+            QueryBuilder<Messgroesse> mgBuilder =
+                new QueryBuilder<Messgroesse>(
+                    repository.entityManager("stamm"),
+                    Messgroesse.class);
+            mgBuilder.and("messgroesse", messgroesse);
+            List<Messgroesse> messgroessen =
+                (List<Messgroesse>)repository.filter(
+                    mgBuilder.getQuery(),
+                    "stamm").getData();
 
-            if (result2.isEmpty()) {
+            if (messgroessen.isEmpty()) {
                 this.errors.add(new ReportItem("messgroesse", "null", 673));
                 return null;
             }
             else {
-                messwert.setMessgroesseId((Integer)result2.get(0));
+                messwert.setMessgroesseId(messgroessen.get(0).getId());
             }
         }
         return messwert;
@@ -508,16 +538,21 @@
         ndx = v.indexOf("\"");
         String fehler = v.substring(ndx + 2);
 
-        String nativeQuery = "select id from stammdaten.probenzusatz where zusatzwert = '";
-        nativeQuery += groesse + "'";
-        Query query = repository.entityManager("land").createNativeQuery(nativeQuery);
-        List<Object[]> result = query.getResultList();
+        QueryBuilder<ProbenZusatz> builder =
+            new QueryBuilder<ProbenZusatz>(
+                repository.entityManager("stamm"),
+                ProbenZusatz.class);
+        builder.and("zusatzwert", groesse);
+        List<ProbenZusatz> zusatz=
+            (List<ProbenZusatz>)repository.filter(
+                builder.getQuery(),
+                "stamm").getData();
 
-        if (result == null || result.isEmpty()) {
+        if (zusatz == null || zusatz.isEmpty()) {
             this.errors.add(new ReportItem(lKey, "zusatzwert", 673));
             return null;
         }
-        wert.setPzsId(result.get(0)[0].toString());
+        wert.setPzsId(zusatz.get(0).getId());
         wert.setMesswertPzs(Float.valueOf(w));
         wert.setMessfehler(Float.valueOf(fehler));
         return wert;
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)