KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > spring > bean > HibernateBean


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright
3  * notice. All rights reserved.
4  */

5 package com.tctest.spring.bean;
6
7 import org.springframework.transaction.TransactionStatus;
8 import org.springframework.transaction.support.DefaultTransactionDefinition;
9
10 import com.tctest.spring.bean.domain.PersistentObj;
11 import com.tctest.spring.bean.orm.hibernate.HibernateDAO;
12
13 public class HibernateBean implements IHibernateBean {
14   private Object JavaDoc sharedOne = null;
15   private transient HibernateDAO dao = null;
16
17   public void associateSharedObj() {
18     dao.getHibernateTemplate().update(this.getSharedOne());
19   }
20
21   public void sharePersistentObj() {
22     TransactionStatus status = dao.getTransactionManager().getTransaction(new DefaultTransactionDefinition());
23     PersistentObj po = new PersistentObj();
24     po.setStrFld("persistent");
25     dao.getHibernateTemplate().save(po);
26     this.setSharedOne(po); // share persistent object
27
dao.getTransactionManager().commit(status);
28   }
29
30   public void shareDetachedObj() {
31     TransactionStatus status = dao.getTransactionManager().getTransaction(new DefaultTransactionDefinition());
32     PersistentObj po = new PersistentObj();
33     po.setStrFld("detached");
34     dao.getHibernateTemplate().save(po);
35     dao.getTransactionManager().commit(status);
36     this.setSharedOne(po); // share detched object
37
}
38
39   public void shareLazyObj() {
40     Integer JavaDoc id = null;
41     PersistentObj po = new PersistentObj();
42     po.setStrFld("parent");
43     PersistentObj child = new PersistentObj();
44     child.setStrFld("lazy");
45     po.setChild(child);
46     dao.getHibernateTemplate().save(po);
47     id = po.getId();
48
49     TransactionStatus status = dao.getTransactionManager().getTransaction(new DefaultTransactionDefinition());
50     po = (PersistentObj) dao.getHibernateTemplate().get(PersistentObj.class, id);
51     this.setSharedOne(po.getChild()); // share proxied object
52
dao.getTransactionManager().commit(status);
53   }
54
55   public void shareObjWithLazyChild() {
56     Integer JavaDoc id = null;
57     PersistentObj po = new PersistentObj();
58     po.setStrFld("parent");
59     PersistentObj child = new PersistentObj();
60     child.setStrFld("lazy");
61     po.setChild(child);
62     dao.getHibernateTemplate().save(po);
63     id = po.getId();
64
65     TransactionStatus status = dao.getTransactionManager().getTransaction(new DefaultTransactionDefinition());
66     po = (PersistentObj) dao.getHibernateTemplate().get(PersistentObj.class, id);
67     this.setSharedOne(po); // share proxied object
68
dao.getTransactionManager().commit(status);
69   }
70
71   public Integer JavaDoc getSharedId() {
72     PersistentObj persistentObj = (PersistentObj) getSharedOne();
73     return persistentObj==null ? null : persistentObj.getId();
74   }
75
76   public String JavaDoc getSharedFld() {
77     PersistentObj persistentObj = (PersistentObj) getSharedOne();
78     return persistentObj==null ? null : persistentObj.getStrFld();
79   }
80
81   public HibernateDAO getDao() {
82     return dao;
83   }
84
85   public void setDao(HibernateDAO dao) {
86     this.dao = dao;
87   }
88
89   synchronized public Object JavaDoc getSharedOne() {
90     // System.err.println("----" + this.sharedOne.getClass().getName());
91
return sharedOne;
92   }
93
94   synchronized public void setSharedOne(Object JavaDoc sharedOne) {
95     this.sharedOne = sharedOne;
96   }
97
98 }
99
Popular Tags