반응형
Transaction is already completed - do not call commit or rollback more than once per transaction
이미 커밋이나 롤백을 실행했으니 더이상 커밋과 롤백을 하지 말라는 오류.
같은 메서드 공간안에서 두번이나 수동으로 커밋과 롤백을 불러들였더니 이런 에러가 발생했다.
for (..... ) {
.....
try {
transaction.commit();
} carch (Exception e) {
transaction.rollback();
}
}
이렇게 하면 위와 같이 롤백후에도 커밋을 실행하기 때문에 이미 트렌잭션이 이루어 졌다고 오류를 낸다. (같은 메서드안에)
이에 로직을 분리하여 method_1( ) => method_2( ) 로 호출하는 방식으로 변경하면
원하는 트랜젝션 롤백을 수행 할 수 있다.
반응형
'Spring' 카테고리의 다른 글
redirect / forward Parameter 전체 (0) | 2017.05.31 |
---|---|
Spring Boot hot swapping(springloaded debuging) 방법 (0) | 2016.09.01 |
Spring Transaction 선언적 트랜잭션(AOP) , 메소드에서 직접 실행(DefaultTransactionDefinition) (0) | 2016.03.03 |
QueryDSL paging (JPAQuery / Hibernate) (0) | 2016.01.17 |
Junit MvcMock , Transaction rollback (0) | 2016.01.17 |