Mercurial > dive4elements > river
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) { |