我尝试使用以下命令启动新的ejb事务:
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
我的服务方法中的注释。一切正常,在我的服务中,它被称为BusinessObject。当该businessObject抛出异常时,它会传播到ejb并回滚它的事务。
我的问题是:是否可以使用与ejb相同的注释在另一个事务中执行businessObject方法?
示例:
@Stateless
public class Service {
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public int methodA(String name) {
BusinessObject business = new BusinessObject();
business.save(name);
}
}
public BusinessObject {
public void save(String name){
doSomeStuff(name);
log(name);
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private log(name){
doSomeOtherStuff(name);
}
}
检查我的业务对象的log方法的事务属性...这是一个有效的注释吗?显然,它已经脱离了ejb,但背景已经在交易中了。
感谢您的帮助!