comparison 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
comparison
equal deleted inserted replaced
187:ecf90018563b 188:003ac16812dd
3 import java.io.File; 3 import java.io.File;
4 import java.io.IOException; 4 import java.io.IOException;
5 5
6 import java.util.List; 6 import java.util.List;
7 7
8 import java.sql.SQLException;
9
8 import org.apache.log4j.Logger; 10 import org.apache.log4j.Logger;
9 11
10 import org.hibernate.SessionFactory; 12 import org.hibernate.SessionFactory;
11 import org.hibernate.Session; 13 import org.hibernate.Session;
12 import org.hibernate.Transaction; 14 import org.hibernate.Transaction;
13 import org.hibernate.Query; 15 import org.hibernate.Query;
16 import org.hibernate.HibernateException;
14 17
15 import de.intevation.flys.backend.SessionFactoryProvider; 18 import de.intevation.flys.backend.SessionFactoryProvider;
16 19
17 import de.intevation.flys.model.River; 20 import de.intevation.flys.model.River;
18 21
40 this.rivers = rivers; 43 this.rivers = rivers;
41 } 44 }
42 45
43 public void writeRivers() { 46 public void writeRivers() {
44 log.debug("write rivers started"); 47 log.debug("write rivers started");
48
45 Session session = sessionHolder.get(); 49 Session session = sessionHolder.get();
46 50
47 Query query = session.createQuery("from River where name=:name"); 51 for (ImportRiver river: rivers) {
48 for (ImportRiver iriver: rivers) { 52 log.debug("writing river '" + river.getName() + "'");
49 log.debug("writing river '" + iriver.getName() + "'"); 53 river.storeAnnotations();
50 query.setString("name", iriver.getName()); 54 session.flush();
51 List<River> dbrivers = (List<River>)query.list();
52 if (dbrivers.isEmpty()) {
53 River dbriver = new River(iriver.getName());
54 session.save(dbriver);
55 }
56 } 55 }
56
57 log.debug("write rivers finished"); 57 log.debug("write rivers finished");
58 } 58 }
59 59
60 public void writeToDatabase() { 60 public void writeToDatabase() {
61 SessionFactory sessionFactory = 61 SessionFactory sessionFactory =
68 Transaction tx = null; 68 Transaction tx = null;
69 69
70 try { 70 try {
71 tx = session.beginTransaction(); 71 tx = session.beginTransaction();
72 72
73 writeRivers(); 73 try {
74 writeRivers();
75 }
76 catch (HibernateException he) {
77 Throwable t = he.getCause();
78 while (t instanceof SQLException) {
79 SQLException sqle = (SQLException)t;
80 log.error("SQL exeception chain:", sqle);
81 t = sqle.getNextException();
82 }
83 throw he;
84 }
74 85
75 tx.commit(); 86 tx.commit();
76 } 87 }
77 catch (RuntimeException re) { 88 catch (RuntimeException re) {
78 if (tx != null) { 89 if (tx != null) {

http://dive4elements.wald.intevation.org