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 }

http://dive4elements.wald.intevation.org