Mercurial > dive4elements > river
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 : |