2012-12-04 2 views
0

Stateless 빈을 CMT로 사용합시다. 콩에는 3 가지 방법이 있는데, 2는 TransactionAttributeType.REQUIRED입니다. 그리고 두 방법 모두 세 번째 방법에서 호출됩니다. 거래가 활성화되면 어떻게 확인할 수 있습니까? 나는 TransactionAttributeType.REQUIRED 속성은 컨테이너 관리 트랜잭션 콩 방법의 기본입니다컨테이너 관리 액티비티의 업무

@Stateless 
@TransactionManagement(TransactionManagementType.CONTAINER) 
public class MyBean 
{ 

    public RetType methodA() 
    { 
     methodB(); 

     //.... is CMT active there? 

     methodC(); 

    } 

    @TransactionAttribute(TransactionAttributeType.REQUIRED) 
    public RetType methodB(){} 

    @TransactionAttribute(TransactionAttributeType.REQUIRED) 
    public RetType methodC(){} 
} 

답변

3

확인하려면, 그래서 당신은 방법은 당신이 필요하지 않은 경우 (시작하자마자 시작하는 트랜잭션에, methodA 실행 그것을 주석을하지 않은 경우에도 다른 활성 트랜잭션의 메소드,이 경우 메소드는 단순히 현재 트랜잭션에 참여).
메소드가 종료 될 때 메소드가 종료되면 트랜잭션이 종료됩니다 (다른 트랜잭션에서 호출 된 경우 제외). TransactionAttributeType.REQUIRES_NEW이라는 주석이없는 한 methodA이라는 메서드는 현재 트랜잭션을 조인합니다.

관련 문제