鉴于这种情况:
-----
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class Start implements X {
@Inject
EjbOne ejbOne
public Integer getId(){...}
return ejbOne.getId
}
-------
@Singleton
public class EjbOne{
@Inject
EjbTwo ejbtwo;
public Integer getId(){
../code omitted as not relevant
ejbtwo.persist(..)
../code omitted as not relevant
}
}
-------
@Singleton
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class EjbTwo {
public void persist(..){..}
}
------
由于EjbTwo.persist(..)已经是'强制'事务的一部分并且从Singleton调用,因此将@Singleton和TransactionAttributeType.REQUIRES_NEW放在EjbTwo上是没有意义的。我一直关注并发问题,也不关心在这里只有一个而不是两个单身的瓶颈。
由于