论坛首页 Java企业应用论坛

求助:dao+hibernate的长事务处理

浏览 4678 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-03-03  
DAO
我用dao封装了对不同po的crud操作,但是假如我有一个长事务,是对很多表进行操作,那就要调用不同po的dao来进行操作,但是每个dao方法都有自己的session和transcation,这样我怎么能做到回滚?是把session和transcation作为参数传入dao的方法中?还是有其他方法,谢谢!!


另外,我昨天发了一个同样内容的帖子提问,但是被删了,我不知道什么原因。也许我问的问题不值得你们回答,但是每个人不是开始什么都会的!
   发表时间:2004-03-03  
这问题说过很多次了,不要在dao中写事务代码,而是从外部发起事务。
如果使用jdbc事务,可以用ThreadLocal来维护Hibernate Session。
0 请登录后投票
   发表时间:2004-03-03  
http://forum.iteye.com/viewtopic.php?t=3205&highlight=
0 请登录后投票
   发表时间:2004-03-07  
1.在PO超类中建立version:int 属性,
@hibernate.version column="RECORD_VERSION"
2.在DAO的UPDATE方法中如下:
public A updateA(A entity);
  {
    int oldVersion = entity.getVersion();;
    A oldEntity = loadAById(entity.getId(););;
    if (oldVersion != oldEntity.getVersion(););
    {
      throw new DAOException("发现脏数据");;
    }
    else
    {
      return (A); updateEntity(entity);;
    }
  }

本人使用的是G-Roller框架!
0 请登录后投票
   发表时间:2004-03-07  
考虑使用G-Roller在业务层控制长事务!

http://gigix.cool2u.net/download/hibernate3.pdf

http://cosoft.org.cn/projects/groller
0 请登录后投票
   发表时间:2004-03-08  
那如果使用session bean的话那?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics