Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/importer/ImportMainValue.java @ 5907:e76fceaf84fc
Importer: Store id of time interval in main values.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 06 May 2013 18:52:03 +0200 |
parents | 4dd33b86dc61 |
children | 4c3ccf2b0304 |
comparison
equal
deleted
inserted
replaced
5905:0c61dba8c0de | 5907:e76fceaf84fc |
---|---|
70 } | 70 } |
71 | 71 |
72 public MainValue getPeer(River river) { | 72 public MainValue getPeer(River river) { |
73 if (peer == null) { | 73 if (peer == null) { |
74 Session session = ImporterSession.getInstance().getDatabaseSession(); | 74 Session session = ImporterSession.getInstance().getDatabaseSession(); |
75 Query query = session.createQuery("from MainValue where " | 75 |
76 + "gauge.id=:gauge_id and mainValue.id=:name_id " | 76 Query query; |
77 + "and timeInterval = :time " | 77 |
78 + "and value=:value"); | 78 TimeInterval t = timeInterval != null |
79 ? timeInterval.getPeer() | |
80 : null; | |
81 | |
82 if (t != null) { | |
83 query = session.createQuery("from MainValue where " | |
84 + "gauge.id=:gauge_id and mainValue.id=:name_id " | |
85 + "and timeInterval = :time " | |
86 + "and value=:value"); | |
87 query.setParameter("time", t); | |
88 } | |
89 else { | |
90 query = session.createQuery("from MainValue where " | |
91 + "gauge.id=:gauge_id and mainValue.id=:name_id " | |
92 + "and timeInterval is null " | |
93 + "and value=:value"); | |
94 } | |
95 | |
79 Gauge g = gauge.getPeer(river); | 96 Gauge g = gauge.getPeer(river); |
80 NamedMainValue n = mainValue.getPeer(); | 97 NamedMainValue n = mainValue.getPeer(); |
81 TimeInterval t = timeInterval != null | |
82 ? timeInterval.getPeer() | |
83 : null; | |
84 query.setParameter("gauge_id", g.getId()); | 98 query.setParameter("gauge_id", g.getId()); |
85 query.setParameter("name_id", n.getId()); | 99 query.setParameter("name_id", n.getId()); |
86 query.setParameter("value", value); | 100 query.setParameter("value", value); |
87 query.setParameter("time", t); | 101 |
88 List<MainValue> values = query.list(); | 102 List<MainValue> values = query.list(); |
89 if (values.isEmpty()) { | 103 if (values.isEmpty()) { |
90 peer = new MainValue(g, n, value, null); | 104 peer = new MainValue(g, n, value, t); |
91 session.save(peer); | 105 session.save(peer); |
92 } | 106 } |
93 else { | 107 else { |
94 peer = values.get(0); | 108 peer = values.get(0); |
95 } | 109 } |