comparison backend/src/main/java/org/dive4elements/river/importer/ImportElevationModel.java @ 8974:a275ddf7a3a1

Added some trim and lowercase in the where clauses of the selects of existing recordsets; added AnnotationType select
author mschaefer
date Tue, 03 Apr 2018 10:37:30 +0200
parents 5e38e2924c07
children
comparison
equal deleted inserted replaced
8973:35afa0349782 8974:a275ddf7a3a1
9 package org.dive4elements.river.importer; 9 package org.dive4elements.river.importer;
10 10
11 import java.util.List; 11 import java.util.List;
12 12
13 import org.apache.log4j.Logger; 13 import org.apache.log4j.Logger;
14 14 import org.dive4elements.river.model.ElevationModel;
15 import org.hibernate.Query;
15 import org.hibernate.Session; 16 import org.hibernate.Session;
16 import org.hibernate.Query;
17
18 import org.dive4elements.river.model.ElevationModel;
19 17
20 18
21 public class ImportElevationModel { 19 public class ImportElevationModel {
22 20
23 private static final Logger log = 21 private static final Logger log =
24 Logger.getLogger(ImportElevationModel.class); 22 Logger.getLogger(ImportElevationModel.class);
25 23
26 protected String name; 24 protected String name;
27 25
28 protected ImportUnit unit; 26 protected ImportUnit unit;
29 27
30 protected ElevationModel peer; 28 protected ElevationModel peer;
31 29
32 30
33 public ImportElevationModel(String name, ImportUnit unit) { 31 public ImportElevationModel(final String name, final ImportUnit unit) {
34 this.name = name; 32 this.name = name;
35 this.unit = unit; 33 this.unit = unit;
36 } 34 }
37 35
38 36
39 public void storeDependencies() { 37 public void storeDependencies() {
40 ElevationModel model = getPeer(); 38 final ElevationModel model = getPeer();
41 } 39 }
42 40
43 public ElevationModel getPeer() { 41 public ElevationModel getPeer() {
44 if (unit == null) { 42 if (this.unit == null) {
45 log.warn("No elevation model specified."); 43 log.warn("No elevation model specified.");
46 return null; 44 return null;
47 } 45 }
46 if (this.peer != null)
47 return this.peer;
48 48
49 if (peer == null) { 49 final Session session = ImporterSession.getInstance().getDatabaseSession();
50 Session session = ImporterSession.getInstance() 50 final Query query = session.createQuery("FROM ElevationModel WHERE (trim(name)=:name) AND (unit=:unit)");
51 .getDatabaseSession(); 51 query.setParameter("name", this.name);
52 Query query = session.createQuery( 52 query.setParameter("unit", this.unit.getPeer());
53 "from ElevationModel where " + 53 final List<ElevationModel> models = query.list();
54 "name=:name and unit=:unit");
55 query.setParameter("name", name);
56 query.setParameter("unit", unit.getPeer());
57 List<ElevationModel> models = query.list();
58 54
59 if (models.isEmpty()) { 55 if (models.isEmpty()) {
60 log.info("Create new ElevationModel DB instance."); 56 log.info("Create new ElevationModel DB instance.");
61 57
62 peer = new ElevationModel(name, unit.getPeer()); 58 this.peer = new ElevationModel(this.name, this.unit.getPeer());
63 session.save(peer); 59 session.save(this.peer);
64 }
65 else {
66 peer = models.get(0);
67 }
68 } 60 }
69 61 else {
70 return peer; 62 this.peer = models.get(0);
63 }
64 return this.peer;
71 } 65 }
72 } 66 }
73 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 67 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org