关于容器管理事务,回滚的一个问题???????????

jd29323 2002-12-13 11:13:56
我使用的无状态SessionBean去访问数据库,
在一个方法中向数据库插入两条数据,
且所有方法的事务都是容器管理的,
在执行这个方法时,我发现如果第二个插入动作出现了异常
第一个插入动作仍然可以向DB中插入数据,也就是说没有回滚

于是我调用了setRollbackOnly(),这时才实现了回滚。

我想问的是,既然是容器管理的事务,在异常出现的时候,
容器为什么没有帮我回滚呢?
...全文
15 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
prosong 2002-12-15
  • 打赏
  • 举报
回复
你的 EJB 的方法的事务把两个方法配置在同一个事务中
javalovers 2002-12-13
  • 打赏
  • 举报
回复
涉及到数据库的插入、修改、删除操作,最好用EntityBean,SessionBean调用Entity来实现,这样比较安全,不会涉及到数据冲突。
A_Liang 2002-12-13
  • 打赏
  • 举报
回复
据我所知容器管理的事务对不同的异常可能采取不同的处理,一般来说对系统级的异常,如:RuntimeException,EjbException等会回滚,但是对于一些应用程序级的异常就可能不回滚,如自定义的一些异常。
建议你用UserTransaction自行管理事务,希望能帮到你!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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