comparison backend/src/main/java/org/dive4elements/river/importer/ImportSQRelation.java @ 8641:c851d1ea543a

SCHEMA CHANGE: Remove unnecessary direct relation of sq_relation with rivers.
author Tom Gottfried <tom@intevation.de>
date Fri, 27 Mar 2015 17:42:27 +0100
parents 4c3ccf2b0304
children 67e53dbe05d2
comparison
equal deleted inserted replaced
8640:0d15ebafbd0e 8641:c851d1ea543a
16 16
17 import org.hibernate.Query; 17 import org.hibernate.Query;
18 import org.hibernate.Session; 18 import org.hibernate.Session;
19 import org.hibernate.exception.ConstraintViolationException; 19 import org.hibernate.exception.ConstraintViolationException;
20 20
21 import org.dive4elements.river.model.River;
22 import org.dive4elements.river.model.SQRelation; 21 import org.dive4elements.river.model.SQRelation;
23 import org.dive4elements.river.model.TimeInterval; 22 import org.dive4elements.river.model.TimeInterval;
24 23
25 24
26 public class ImportSQRelation { 25 public class ImportSQRelation {
37 36
38 public ImportSQRelation() { 37 public ImportSQRelation() {
39 this.values = new ArrayList<ImportSQRelationValue>(); 38 this.values = new ArrayList<ImportSQRelationValue>();
40 } 39 }
41 40
42 public void storeDependencies(River river) { 41 public void storeDependencies() {
43 log.info("store dependencies"); 42 log.info("store dependencies");
44 43
45 SQRelation peer = getPeer(river); 44 SQRelation peer = getPeer();
46 45
47 if (peer != null) { 46 if (peer != null) {
48 int count = 0; 47 int count = 0;
49 48
50 for (ImportSQRelationValue value : values) { 49 for (ImportSQRelationValue value : values) {
62 61
63 log.info("stored " + count + " sq relation values."); 62 log.info("stored " + count + " sq relation values.");
64 } 63 }
65 } 64 }
66 65
67 public SQRelation getPeer(River river) { 66 public SQRelation getPeer() {
68 log.debug("getPeer()"); 67 log.debug("getPeer()");
69 68
70 if (peer == null) { 69 if (peer == null) {
71 TimeInterval timeInter = timeInterval.getPeer(); 70 TimeInterval timeInter = timeInterval.getPeer();
72 71
76 } 75 }
77 76
78 Session session = ImporterSession.getInstance() 77 Session session = ImporterSession.getInstance()
79 .getDatabaseSession(); 78 .getDatabaseSession();
80 79
81 Query query = session 80 Query query = session.createQuery(
82 .createQuery("FROM SQRelation WHERE river=:river AND timeInterval=:timeInter"); 81 "from SQRelation where " +
82 " description = :description and " +
83 " timeInterval=:timeInter");
83 84
84 query.setParameter("river", river); 85 query.setParameter("description", description);
85 query.setParameter("timeInter", timeInter); 86 query.setParameter("timeInter", timeInter);
86 87
87 List<SQRelation> sq = query.list(); 88 List<SQRelation> sq = query.list();
88 89
89 if (sq.isEmpty()) { 90 if (sq.isEmpty()) {
90 log.info("create new SQ relation '" + description + "'"); 91 log.info("create new SQ relation '" + description + "'");
91 92
92 peer = new SQRelation(river, timeInter, description); 93 peer = new SQRelation(timeInter, description);
93 session.save(peer); 94 session.save(peer);
94 } 95 }
95 else { 96 else {
96 peer = sq.get(0); 97 peer = sq.get(0);
97 } 98 }

http://dive4elements.wald.intevation.org