엔티티 데이터를 업데이트 한 다음 특정 유형의 업데이트를 기반으로 다른 엔티티도 업데이트 할 수 있습니다.오류 상황의 변경 롤백
두 번째 항목의 updation이 실패하여 예외가 발생할 수 있습니다.
문제는 첫 번째 엔티티에서 수행 된 변경 사항을 롤백하려는 경우에이 상황을 처리하는 방법입니다.
두 번째 항목이 업데이트 될 때까지 첫 번째 항목에 대한 업데이트를 연기 할 수 없습니다. 현재 상황에서
그 다음은 첫 번째 항목이 변경 커밋합니다 즉시 코드가 아래 블록에 도달으로 다음
을 발생하는 경우에도 2 개체 업데이트에 실패 있습니다. 그래서 롤백하는 방법? 두 번째 엔터티 업데이트가 실패한 경우 persistentManager를 닫지 않는 것이 올바른 옵션이 아니라고 생각합니다.
finally {
try {
if (pm != null && pm.isClosed() == false)
pm.close();
} catch (Exception e) {
log.severe("Exception in finally of execute of updateDonor");
log.severe("Exception class is :" + e.getClass().getName());
log.severe("Exception is :" + e.getMessage());
throw new Exception(e.getMessage()
+ "Unable to close persistence manager");
}
log.info("end of updateDonor");
}
좋아요. 그것을 시도해보십시오 – Vik
글쎄 우리는 jdo를 사용하고 있습니다. 그래서 모든 엔티티가 그룹 간 트랜잭션을 실행할 수 있도록 jdoconfig.xml을 활성화해야합니다. 그러나 jdo의 경우 페이지에 코드가 표시되지 않습니까? 나는 txn을 시작하고 그것을 끝내는 방법을 의미합니까? 내 요구 사항을 지우기 위해 두 개의 다른 엔티티에 원자 적 업데이트를 실행하려고합니다. – Vik