Mercurial > lada > lada-server
diff src/main/java/de/intevation/lada/importer/laf/AttributeMapper.java @ 675:331cd2bb3109
Removed plain sql statements.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 22 May 2015 15:14:08 +0200 |
parents | 9e733f44d8b0 |
children | 1e54d59280e6 |
line wrap: on
line diff
--- 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;