diff flys-backend/src/main/java/de/intevation/flys/importer/ImportSQRelationValue.java @ 3329:cc8fc6b29649

Store sq relations into database after parsing. flys-backend/trunk@4647 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 13 Jun 2012 08:12:00 +0000
parents a41f279a66e2
children 13596605e81f
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportSQRelationValue.java	Wed Jun 13 06:22:04 2012 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportSQRelationValue.java	Wed Jun 13 08:12:00 2012 +0000
@@ -1,9 +1,12 @@
 package de.intevation.flys.importer;
 
 import java.sql.SQLException;
+import java.util.List;
 
 import org.apache.log4j.Logger;
 
+import org.hibernate.Query;
+import org.hibernate.Session;
 import org.hibernate.exception.ConstraintViolationException;
 
 import de.intevation.flys.model.SQRelation;
@@ -46,16 +49,46 @@
     public void storeDependencies(SQRelation owner)
     throws SQLException, ConstraintViolationException
     {
-        log.info("store dependencies");
-        log.warn("TODO: IMPLEMENT 'storeDependencies()'");
+        getPeer(owner);
     }
 
 
-    public SQRelationValue getPeer() {
-        log.debug("getPeer()");
+    public SQRelationValue getPeer(SQRelation owner) {
+        if (peer == null) {
+            Session session = ImporterSession.getInstance().getDatabaseSession();
 
-        if (peer == null) {
-            // TODO
+            Query query = session.createQuery(
+                "from SQRelationValue " +
+                "   where sqRelation=:owner " +
+                "   and parameter=:parameter" +
+                "   and fraction=:fraction" +
+                "   and function=:function" +
+                "   and km=:km");
+
+            query.setParameter("owner", owner);
+            query.setString("parameter", parameter);
+            query.setString("fraction", fraction);
+            query.setString("function", function);
+            query.setDouble("km", km);
+
+            List<SQRelationValue> values = query.list();
+
+            if (values.isEmpty()) {
+                peer = new SQRelationValue(
+                    owner,
+                    parameter,
+                    fraction,
+                    function,
+                    km,
+                    a,
+                    b
+                );
+
+                session.save(peer);
+            }
+            else {
+                peer = values.get(0);
+            }
         }
 
         return peer;

http://dive4elements.wald.intevation.org