我的BaseDAO如下:
java 代码
- public class BaseDAO<t></t>
- {
- Session session;
- /**
- * @author insKy
- * @time 2007-6-17 下午03:06:17
- * @version 1.0
- * @param t
- */
- public void create (T t) {
- try {
- session = SessionFactory.getSession();
- Transaction tx = session.beginTransaction();
- session.save( t );
- session.flush();
- tx.commit();
- }catch(HibernateException e){
- throw e;
- }finally{
- }
- }
- //update delete操作类似 此处代码略
- public void update (T t)
- public void delete(T t)
- }
其余Dao继承这个BaseDAO:
java 代码
- public class ColumnsDAO extends BaseDAO{
- //某些操作。。。 此处不显式调用父类的creat函数
- }
然而Dao中出现事务操作是不合适的,所以这里想分出BO层处理session以及事务的处理,修改完后的BaseBO应该大体如下:
java 代码
- public void create (T t) {
- try {
- session.save( t );
- }catch(HibernateException e){
- throw e;
- }finally{
- }
- }
我的问题是
1,对应的BO应该如何处理?BaseDAO中的session应该如何获取?BO中如何传递过来?(没用Spring之用到Struts+Hibernate)session的获取是SessionFactory通过ThreadLocal获取的
//看了别人的程序,感觉如果用Spring来管理,不会遇到这些问题,这里没用Spring改如何来最好的管理session的传递?
2,是否也应该写一个BaseBO来对应处理BaseDAO中的各个操作以避免每个BO中处理crud操作?
请各位指教