对@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)@Stateless是否无意义

时间:2018-02-28 13:35:12

标签: java java-ee java-ee-6

鉴于这种情况:

-----
@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上是没有意义的。我一直关注并发问题,也不关心在这里只有一个而不是两个单身的瓶颈。

由于

0 个答案:

没有答案