Mercurial > dive4elements > river
diff flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java @ 497:67fd63e4ef66
Importer: centralized caching
flys-backend/trunk@1851 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 08 May 2011 15:29:45 +0000 |
parents | 3a99d0295006 |
children | cce054f27dac |
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java Sun May 08 11:20:39 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java Sun May 08 15:29:45 2011 +0000 @@ -1,21 +1,15 @@ package de.intevation.flys.importer; import de.intevation.flys.model.Wst; -import de.intevation.flys.model.WstColumnValue; import de.intevation.flys.model.River; -import de.intevation.flys.backend.SessionFactoryProvider; - import org.apache.log4j.Logger; import org.hibernate.Session; -import org.hibernate.SessionFactory; import org.hibernate.Query; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class ImportWst { @@ -25,19 +19,13 @@ protected Integer kind; - //protected Map<String, ImportWstColumn> columns; protected List<ImportWstColumn> columns; - protected Map<WstColumnValueKey, WstColumnValue> wstCache; - protected Wst peer; public ImportWst() { kind = 0; columns = new ArrayList<ImportWstColumn>(); - - // This cache is used to avoid db queries for each WstColumnValue later - wstCache = getWstColumnValueCache(); } public ImportWst(String description) { @@ -64,7 +52,7 @@ public void setNumberColumns(int numColumns) { for (int i = 0; i < numColumns; ++i) { - columns.add(new ImportWstColumn(this, null, null, i, wstCache)); + columns.add(new ImportWstColumn(this, null, null, i)); } } @@ -84,43 +72,9 @@ } } - - public Map<WstColumnValueKey, WstColumnValue> getWstColumnValueCache() { - SessionFactory sessionFactory = - SessionFactoryProvider.createSessionFactory(); - - Session session = sessionFactory.openSession(); - - Importer.sessionHolder.set(session); - - try { - Query query = session.createQuery("from WstColumnValue"); - - List<WstColumnValue> values = query.list(); - Map<WstColumnValueKey, WstColumnValue> cache = - new HashMap<WstColumnValueKey, WstColumnValue>(); - - for (WstColumnValue value: values) { - cache.put( - new WstColumnValueKey(value), - value); - } - - logger.info("++++++++++++++++++++++++++++++++++++++++++++++++++++"); - logger.info(cache.size() + " WstColumnValue objects in WST cache."); - logger.info("++++++++++++++++++++++++++++++++++++++++++++++++++++"); - - return cache; - } - finally { - session.close(); - Importer.sessionHolder.remove(); - } - } - public Wst getPeer(River river) { if (peer == null) { - Session session = Importer.sessionHolder.get(); + Session session = ImporterSession.getInstance().getDatabaseSession(); Query query = session.createQuery( "from Wst where " + "river=:river and description=:description and kind=:kind");