Mercurial > dive4elements > river
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;