]> git.argeo.org Git - gpl/argeo-slc.git/blob - 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
1 package org.argeo.slc.hibernate.test.tree;
2
3 import java.sql.SQLException;
4 import java.util.SortedSet;
5 import java.util.TreeSet;
6
7 import org.springframework.orm.hibernate3.HibernateCallback;
8 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
9
10 import org.argeo.slc.core.test.tree.TreeTestResult;
11 import org.argeo.slc.core.test.tree.TreeTestResultCollection;
12 import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;
13 import org.hibernate.HibernateException;
14 import org.hibernate.Session;
15 import org.hibernate.action.Executable;
16
17 public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport
18 implements TreeTestResultCollectionDao {
19
20 public void create(TreeTestResultCollection ttrCollection) {
21 getHibernateTemplate().save(ttrCollection);
22 }
23
24 public TreeTestResultCollection getTestResultCollection(String id) {
25 return (TreeTestResultCollection) getHibernateTemplate().get(
26 TreeTestResultCollection.class, id);
27 }
28
29 public void update(TreeTestResultCollection ttrCollection) {
30 getHibernateTemplate().update(ttrCollection);
31 }
32
33 public SortedSet<TreeTestResultCollection> listCollections() {
34 return new TreeSet<TreeTestResultCollection>(getHibernateTemplate()
35 .find("from TreeTestResultCollection"));
36 }
37
38 public void addResultToCollection(final TreeTestResultCollection ttrc,
39 final String resultUuid) {
40 getHibernateTemplate().execute(new HibernateCallback() {
41 public Object doInHibernate(Session session)
42 throws HibernateException, SQLException {
43 session.refresh(ttrc);
44 TreeTestResult ttr = (TreeTestResult) session.get(
45 TreeTestResult.class, resultUuid);
46 ttrc.getResults().add(ttr);
47 session.update(ttrc);
48 return ttrc;
49 }
50 });
51 }
52
53 public void removeResultFromCollection(final TreeTestResultCollection ttrc,
54 final String resultUuid) {
55 getHibernateTemplate().execute(new HibernateCallback() {
56 public Object doInHibernate(Session session)
57 throws HibernateException, SQLException {
58 session.refresh(ttrc);
59 TreeTestResult ttr = (TreeTestResult) session.get(
60 TreeTestResult.class, resultUuid);
61 if (ttrc.getResults().remove(ttr))
62 session.update(ttrc);
63 return ttrc;
64 }
65 });
66 }
67
68 }