2017-12-22 26 views

답변

0

아니요. 그것은 불가능합니다. 아주 좋은 이유가 있습니다.

JPA와 Hibernate Persistence Context를 플러시하는 동안 예외가 발생하면 동기화 된 엔티티 상태 전환의 수와 플러시되지 않은 상태 전환이 명확하지 않습니다.

JPA 작업 단위 (Persistence Context)는 원자 번호뿐만 아니라 ACID transaction should be atomic과 같습니다.

이 동작을 중단하려는 것은 데이터 액세스 디자인 냄새이며이 질문에 이르게 한 원래의 문제에 대한 더 나은 해결책이 있음을 알려줍니다.

+0

트랜잭션 관리자가 트랜잭션을 롤백하고 감사 추적을 위해 다른 테이블에 레코드를 삽입하는 것이 더 좋습니까? –

+0

글쎄, 롤백중인 트랜잭션은 데이터베이스 리두 로그에 항목이 없으므로 감사 로그가 존재하지 않는 데이터베이스 변경을 표시해서는 안된다는 것을 의미합니다. 그러나 Event Sourcing을 사용해야하는 경우 성공 또는 실패 여부와 상관없이 모든 명령을 기록 할 수 있습니다. 이를 위해서는 JPA와 Hibernate로 트랜잭션을 열기 전에 별도의 트랜잭션을 사용해야한다. –

+0

propagation에 대해 jta에 상응하는 것이 있습니까? requires_new 또는 프로그래밍 방식으로 수행 할 수있는 방법은 무엇입니까? –