X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.hibernate%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fhibernate%2Fprocess%2FSlcExecutionDaoHibernate.java;h=0e21b3a9d9ae768f154a18ffb93108d46206b1ca;hb=a84a0c69cc8593264264a9961c643d67a8acc046;hp=9518d93fc5ad804b1fc4faab27d29a14ac1bc6fa;hpb=ad49e4ffc69a3c67dee95b9d333d9282ab2c5e82;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/process/SlcExecutionDaoHibernate.java b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/process/SlcExecutionDaoHibernate.java index 9518d93fc..0e21b3a9d 100644 --- a/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/process/SlcExecutionDaoHibernate.java +++ b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/process/SlcExecutionDaoHibernate.java @@ -1,11 +1,17 @@ package org.argeo.slc.hibernate.process; +import java.sql.SQLException; import java.util.List; +import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.argeo.slc.core.SlcException; import org.argeo.slc.core.process.SlcExecution; +import org.argeo.slc.core.process.SlcExecutionStep; import org.argeo.slc.dao.process.SlcExecutionDao; +import org.hibernate.HibernateException; +import org.hibernate.Session; public class SlcExecutionDaoHibernate extends HibernateDaoSupport implements SlcExecutionDao { @@ -28,4 +34,25 @@ public class SlcExecutionDaoHibernate extends HibernateDaoSupport implements SlcExecution.class); } + public void addSteps(final String slcExecutionId, + final List additionalSteps) { + getHibernateTemplate().execute(new HibernateCallback() { + + public Object doInHibernate(Session session) + throws HibernateException, SQLException { + SlcExecution slcExecution = (SlcExecution) session.get( + SlcExecution.class, slcExecutionId); + + if (slcExecution == null) + throw new SlcException("Could not find SLC execution " + + slcExecutionId); + + slcExecution.getSteps().addAll(additionalSteps); + session.update(slcExecution); + return slcExecution; + } + }); + + } + }