X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.hibernate%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fhibernate%2Ftest%2Ftree%2FTreeTestResultCollectionDaoHibernate.java;h=513a1212347f002884e65d8bf655640077562d1f;hb=a84a0c69cc8593264264a9961c643d67a8acc046;hp=b080720582812510523fda754aa552fa2cb72abb;hpb=ad49e4ffc69a3c67dee95b9d333d9282ab2c5e82;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java index b08072058..513a12123 100644 --- a/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java +++ b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java @@ -1,12 +1,18 @@ package org.argeo.slc.hibernate.test.tree; +import java.sql.SQLException; import java.util.SortedSet; import java.util.TreeSet; +import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.argeo.slc.core.test.tree.TreeTestResult; import org.argeo.slc.core.test.tree.TreeTestResultCollection; import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao; +import org.hibernate.HibernateException; +import org.hibernate.Session; +import org.hibernate.action.Executable; public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport implements TreeTestResultCollectionDao { @@ -29,4 +35,34 @@ public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport .find("from TreeTestResultCollection")); } + public void addResultToCollection(final TreeTestResultCollection ttrc, + final String resultUuid) { + getHibernateTemplate().execute(new HibernateCallback() { + public Object doInHibernate(Session session) + throws HibernateException, SQLException { + session.refresh(ttrc); + TreeTestResult ttr = (TreeTestResult) session.get( + TreeTestResult.class, resultUuid); + ttrc.getResults().add(ttr); + session.update(ttrc); + return ttrc; + } + }); + } + + public void removeResultFromCollection(final TreeTestResultCollection ttrc, + final String resultUuid) { + getHibernateTemplate().execute(new HibernateCallback() { + public Object doInHibernate(Session session) + throws HibernateException, SQLException { + session.refresh(ttrc); + TreeTestResult ttr = (TreeTestResult) session.get( + TreeTestResult.class, resultUuid); + if (ttrc.getResults().remove(ttr)) + session.update(ttrc); + return ttrc; + } + }); + } + }