Spring中有一个 org.springframework.transaction.annotation.Transactional 注释,我们可以使用该注释为事务提供方法级别超时。
我正在尝试使用CDI实现相同的目标。但J2EE等效注释 javax.transaction.Transactional 没有配置超时的选项。
我已经搜索了一段时间,但直到现在还找不到多少。是否可以在CDI中使用方法级别事务超时?如果没有那么任何其他方式来实现它?
//@Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRES_NEW, timeout=5_MIN, rollbackFor = {OHException.class })
@Transactional( value= TxType.REQUIRES_NEW,rollbackOn= {OHException.class})
public <T> T saveDomainObject(T object) throws OHException{
.....
}
答案 0 :(得分:1)
不幸的是,JTA及其ratio
注释无法实现。
通常,您只能为所有方法设置事务超时全局。
但是我知道的其他方法可以实现类似的目标:
javax.transaction.Transactional
,这正是您所寻找的。 li>
@org.jboss.annotation.ejb.TransactionTimeout
提示 - 它的用法看起来像javax.persistence.query.timeout
。但是,在大多数情况下,最简单的解决方案是增加所有交易的超时。
希望它有所帮助。