2013-02-04 4 views
5

이 무엇입니까? 컨테이너 관리 JTA 트랜잭션의 트랜잭션을 롤백하는 방법은 무엇입니까?JTA 트랜잭션을 올바르게 롤백하는 방법은 무엇입니까?

나는 이것을 이해한다 : EJBException when calling entityManager.getTransaction() 나는 거래 인스턴스를 얻을 수 없다. 나는 해결책이 here를 읽었다 그러나 나는 이것이 정확한지 확실하지 않다.

예외가 발생하면 트랜잭션이 롤백된다는 것도 알고 있습니다.

하지만 내 질문은 : 컨테이너 (EntityManager 관리)를 사용하고 싶다면, 그 안에 트랜잭션을 롤백하는 올바른 방법은 무엇입니까? 코드 목장에 asnwer이 옳다

답변

7

, 당신은

@Resource 
private SessionContext ctx; 

//and then in method 
if(fail) { 
    ctx.setRollBackOnly(); 
} 

SessionContext는이 article 참조 사용해야합니다.

관련 문제