EJB事务 楼主用EJB3.0应该可以比较简单的处理这种问题啊@TransactionAttribute 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 EJB2 里不也有事务属性吗?就是不太清楚这种事务机制。应该不算是嵌套事务吧 一个事务。 这样失败的话就会完整的回滚。 可以加在Session Bean上。 基本上是下面这个意思,在SessionBean中的添加方法。:先添加主表中的数据,然后循环添加从表中的数据,有时候这个事务方法可能持续时间比较长。主要是根据从表中的数据多少有关系。我想这也是发生死锁的关键原因吧。不知道需要在哪设置事务级别。 /** * @ejb.interface-method * @ejb.transaction * type="Required" */ public void addData(TempData data) throws FinderException, CreateException { //添加原始数据 AEntityBeanLocal aEntityLocal = aHome().create(id); aEntityLocal.setValue(value); //添加从表数据 Iterator it = .... while (it.hasNext()) { bHome.create(id); bHome.setValue(value); } 一、这个过程一共有多少个事务?----------------------EJB的事务范围是跟方法有关的,并且是可能传递的1 起始方法 方法A2 被调用方法 方法B--方法A可以启动一个事务,也可以不启动事务--方法B被方法A调用,方法B可以加入方法A的事务中,也可以不加入方法A的事务中,也可以自己单独启动一个自己的事务方法B的事务属性为NotSupported 方法A启动一个事务,调用方法B,方法B不加入方法A的事务,也不单独启动自己的事务,事务在A,B交界处挂起,方法B完成后方法A的事务继续方法B的事务属性为Supports 方法A启动一个事务,调用方法B,方法B加入方法A的事务 方法A没有事务,调用方法B,方法B也不产生自己的事务方法B的事务属性为Required 方法A启动一个事务,调用方法B,方法B加入方法A的事务 方法A没有事务,调用方法B,方法B就产生自己的事务方法B的事务属性为RequiresNew 方法A启动一个事务,调用方法B,方法B不加入方法A的事务,而是自己产生自己的新事务 方法A没有事务,调用方法B,方法B就产生自己的事务方法B的事务属性为Mandatory 方法A启动一个事务,调用方法B,方法B加入方法A的事务 方法A没有事务,调用方法B,方法B就产生一个异常方法B的事务属性为Never 方法A启动一个事务,调用方法B,方法B就产生一个异常 方法A没有事务,调用方法B,方法B也不产生事务 Required----------- CMP必须支持RequiresNew---------- CMP必须支持Mandatory----------- CMP必须支持 NotSupportedSupportsNever这种事务属性可能有的容器的CMP就不支持了 文档管理系统问题请教 struts2 的标签里如何访问一个类的静态方法或属性? struts Hibernate Spring结合问题 路径替换,正则达人再临!!!求助!! SSH里删除表所有数据然后执行添加 要考核了, 求一个crm项目 Jobo爬虫搜索代理 下载:孙老师的精通Hibernate 一个高中学历无产者是怎样变成月薪4800元的程序员的 大家有什么好的有关JAVA的QQ群吗?给推荐一下好吗? 急:struts标签问题 谁用过明宇的如意报表控件,怎么显示SQLServer的图片(image类型)字段啊?
* @ejb.interface-method
* @ejb.transaction
* type="Required"
*/
public void addData(TempData data)
throws FinderException, CreateException {
//添加原始数据
AEntityBeanLocal aEntityLocal =
aHome().create(id);
aEntityLocal.setValue(value);
//添加从表数据
Iterator it = ....
while (it.hasNext()) {
bHome.create(id);
bHome.setValue(value);
}
EJB的事务范围是跟方法有关的,并且是可能传递的1 起始方法 方法A
2 被调用方法 方法B--方法A可以启动一个事务,也可以不启动事务
--方法B被方法A调用,方法B可以加入方法A的事务中,也可以不加入方法A的事务中,也可以自己单独启动一个自己的事务方法B的事务属性为NotSupported
方法A启动一个事务,调用方法B,方法B不加入方法A的事务,也不单独启动自己的事务,事务在A,B交界处挂起,方法B完成后方法A的事务继续方法B的事务属性为Supports
方法A启动一个事务,调用方法B,方法B加入方法A的事务
方法A没有事务,调用方法B,方法B也不产生自己的事务方法B的事务属性为Required
方法A启动一个事务,调用方法B,方法B加入方法A的事务
方法A没有事务,调用方法B,方法B就产生自己的事务方法B的事务属性为RequiresNew
方法A启动一个事务,调用方法B,方法B不加入方法A的事务,而是自己产生自己的新事务
方法A没有事务,调用方法B,方法B就产生自己的事务方法B的事务属性为Mandatory
方法A启动一个事务,调用方法B,方法B加入方法A的事务
方法A没有事务,调用方法B,方法B就产生一个异常方法B的事务属性为Never
方法A启动一个事务,调用方法B,方法B就产生一个异常
方法A没有事务,调用方法B,方法B也不产生事务
RequiresNew---------- CMP必须支持
Mandatory----------- CMP必须支持
Supports
Never这种事务属性可能有的容器的CMP就不支持了