]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java
Adapt web services to lazy loading
[gpl/argeo-slc.git] / org.argeo.slc.hibernate / src / main / java / org / argeo / slc / hibernate / test / tree / TreeTestResultCollectionDaoHibernate.java
index b080720582812510523fda754aa552fa2cb72abb..513a1212347f002884e65d8bf655640077562d1f 100644 (file)
@@ -1,12 +1,18 @@
 package org.argeo.slc.hibernate.test.tree;\r
 \r
+import java.sql.SQLException;\r
 import java.util.SortedSet;\r
 import java.util.TreeSet;\r
 \r
+import org.springframework.orm.hibernate3.HibernateCallback;\r
 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r
 \r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
 import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
 import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.Session;\r
+import org.hibernate.action.Executable;\r
 \r
 public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport\r
                implements TreeTestResultCollectionDao {\r
@@ -29,4 +35,34 @@ public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport
                                .find("from TreeTestResultCollection"));\r
        }\r
 \r
+       public void addResultToCollection(final TreeTestResultCollection ttrc,\r
+                       final String resultUuid) {\r
+               getHibernateTemplate().execute(new HibernateCallback() {\r
+                       public Object doInHibernate(Session session)\r
+                                       throws HibernateException, SQLException {\r
+                               session.refresh(ttrc);\r
+                               TreeTestResult ttr = (TreeTestResult) session.get(\r
+                                               TreeTestResult.class, resultUuid);\r
+                               ttrc.getResults().add(ttr);\r
+                               session.update(ttrc);\r
+                               return ttrc;\r
+                       }\r
+               });\r
+       }\r
+\r
+       public void removeResultFromCollection(final TreeTestResultCollection ttrc,\r
+                       final String resultUuid) {\r
+               getHibernateTemplate().execute(new HibernateCallback() {\r
+                       public Object doInHibernate(Session session)\r
+                                       throws HibernateException, SQLException {\r
+                               session.refresh(ttrc);\r
+                               TreeTestResult ttr = (TreeTestResult) session.get(\r
+                                               TreeTestResult.class, resultUuid);\r
+                               if (ttrc.getResults().remove(ttr))\r
+                                       session.update(ttrc);\r
+                               return ttrc;\r
+                       }\r
+               });\r
+       }\r
+\r
 }\r