struts2 + hibernate 事务的问题

summily 2010-12-11 09:07:59
用struts2+hibernate做了一个项目,自己是新手,不明白事务的提交及回滚放到哪,如果放到DAO层,每一个增、删、改、查方法都进行事务调教及回滚,这样出现一个问题,我在action这一层里,要是一个方法调用多个dao层的方法,比如银行转帐,dao层里,一个加余额的方法,一个减余额的方法,当转帐时,要执行从一个帐号减余额,另一个加余额,要是这两个方法分别进行事务控制,那岂不是 若转出成功,转入失败时,回滚事务只回滚加余额的这个,减余额的不回滚,这部就麻烦了。

我在web。xml文件里写了个过滤器来控制事务,因为没做过这种项目,不知道你们是怎么控制事务的,不用spring
...全文
92 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aixuer 2010-12-13
  • 打赏
  • 举报
回复
事物控制理所当然在业务层控制。说白了,就是在Service层来弄这个事情,而不是Dao层。

我比较常用的做法是用 Spring 管理事物,而且代码非常简洁。

另外Spring 本身提供了一个帮助管理Hibernate事务的专用切面。

楼主请自己找一下 Spring 的资料。 我推荐一本《Spring In Action》第二版
楚林少 2010-12-12
  • 打赏
  • 举报
回复
事务一般都是放在业务层接口里面做的。。

我们的是放在BO接口里面的。。

想要事务就注入接口。不想要事务就注入接口的实现。。
wuly505 2010-12-11
  • 打赏
  • 举报
回复
需要增加一个服务层,将Dao注入到服务层中,事物控制都在服务层执行
bolink5 2010-12-11
  • 打赏
  • 举报
回复
LS 的方法是可行的
还有你直接把二次操作写在一个方法中
在方法开始的地方开启事务,在二次操作都成功了就提交事务,如果出错了就在catch中使事务回滚。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧