2014-02-10 2 views
0

JPA를 사용하여 EJB-CMT 빈을 작성하고 있습니다. 내 EJB 메서드에서 일부 지속 작업이 있고 '지속'작업 중 하나를 수행 한 후 '플러시'를 호출해야합니다.EJB-CMT JPA 플러시 트랜잭션

@Stateless 
@LocalBean 
@TransactionManagement(TransactionManagementType.CONTAINER) 
public class MyEjb { 

    @PersistenceContext(unitName = "MyPU") 
    EntityManager em; 

    public void addSome() { 
     User u = //; 
     em.persist(u); 

     em.flush(); // ----------- CALL FLUSH HERE 

     UserGroup g1; 
     em.persist(g1); // --- Add another 

     UserGroup g2; 
     em.persist(g2); // -- Add another 
    } 
} 

내 질문이입니다 : 여기

내 샘플 코드이다 내가 'addSome'방법의 모든 코드는 하나의 트랜잭션에서 실행받을 수 있습니까? 나는 '플러시'를 사용하지 않으면 모든 코드가 하나의 트랜잭션에서 실행된다는 것을 안다.

도움 주셔서 감사합니다.

답변

1

있는지, 당신이 더 많은 정보를 확인 value=REQUIRES_NEW으로 @TransactionAttribute와 방법을 주석을 달 수 있습니다 및 방법은 하나의 고립 된 트랜잭션에서 실행 얻을 것이다 당신이 방법에서 돌아 왔을 때 당신의 엔티티 관리자가 플러시 얻을 것이다

+0

here 당신에게 카밀로 감사 ! –

관련 문제