diff flys-backend/src/main/java/de/intevation/flys/importer/Importer.java @ 188:003ac16812dd

Store annotations in backend. flys-backend/trunk@1518 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 18 Mar 2011 12:10:33 +0000
parents 222f4db3430a
children bc3747a371cc
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/Importer.java	Thu Mar 17 18:07:13 2011 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/Importer.java	Fri Mar 18 12:10:33 2011 +0000
@@ -5,12 +5,15 @@
 
 import java.util.List;
 
+import java.sql.SQLException;
+
 import org.apache.log4j.Logger;
 
 import org.hibernate.SessionFactory;
 import org.hibernate.Session;
 import org.hibernate.Transaction;
 import org.hibernate.Query;
+import org.hibernate.HibernateException;
 
 import de.intevation.flys.backend.SessionFactoryProvider;
 
@@ -42,18 +45,15 @@
 
     public void writeRivers() {
         log.debug("write rivers started");
+
         Session session = sessionHolder.get();
 
-        Query query = session.createQuery("from River where name=:name");
-        for (ImportRiver iriver: rivers) {
-            log.debug("writing river '" + iriver.getName() + "'");
-            query.setString("name", iriver.getName());
-            List<River> dbrivers = (List<River>)query.list();
-            if (dbrivers.isEmpty()) {
-                River dbriver = new River(iriver.getName());
-                session.save(dbriver);
-            }
+        for (ImportRiver river: rivers) {
+            log.debug("writing river '" + river.getName() + "'");
+            river.storeAnnotations();
+            session.flush();
         }
+
         log.debug("write rivers finished");
     }
 
@@ -70,7 +70,18 @@
         try {
             tx = session.beginTransaction();
 
-            writeRivers();
+            try {
+                writeRivers();
+            }
+            catch (HibernateException he) {
+                Throwable t = he.getCause();
+                while (t instanceof SQLException) {
+                    SQLException sqle = (SQLException)t;
+                    log.error("SQL exeception chain:", sqle);
+                    t = sqle.getNextException();
+                }
+                throw he;
+            }
 
             tx.commit();
         }

http://dive4elements.wald.intevation.org