롤백은 EJB이 같은 구조를 갖는 가정 :비동기 EJB 방법 및
@Stateless
public class MyBean {
@PersistenceContext
private EntityManager entityManager;
public void doSomething() {
...
doAsynchronously();
...
entityManager.persist(someObject);
...
if (...) {
throw new RuntimeException();
}
}
public void doAsynchronously() {
...
entityManager.persist(someOtherObject);
...
}
}
예외가 동기 부분에서 발생하고, 따라서 트랜잭션 롤백시 비동기 호출이 아니라고, 그것은 정확 그 영향을받지 않으면 엔티티 관리자의 작업이 올바르게 완료되어야합니까?
비동기식 bean에 관한 많은 예제를 발견했지만, 두 가지 경우 모두 엔티티 관리자에서 작업하지 않기 때문에 누군가가 나를 이끌 수 있다면 행복 할 것입니다.
편집 2013년 8월 22일 : 추가 질문
- 코드 조각과 같이 설정을위한 전체 이유는 doAsynchronously()
의 코드가 완전히 작업을 완료 할 수 있는지 확인하는 것이 었습니다 엔티티에서 호출자 메서드에서 예외가 발생하는지 상관없이 -을 주석으로 처리하는 대신 동일한 동작을 얻으실 수 있습니까?
확인해 주셔서 감사합니다. 두 번째 해결책은 동기식이라고 알고 있지만, 말했듯이 다른 엔티티가 예외로 인해 롤백 되더라도 비동기 적으로 실행되는 것이 아니라 특정 엔티티 작업을 완료하는 것이 목적입니다. –