주석 @Transactional
에 문제가 있습니다.트랜잭션에서 롤백 관리
몇 가지 방법을 사용하고 있으며 내부에는 IllegalArgumentException
을 던지고 잡습니다.
나는 (예외를 잡았더라도) 트랜잭션이 rollbackOnly (예외의 throw에 대한 일부 트리거)로 설정되고 트랜잭션을 커밋하지 않고 끝난다 고 생각한다.
org.springframework.transaction.TransactionSystemException : Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly
나는 @Transactional
에 추가 할 수있는 노 롤백에 대한 내가 던져 잡기,하지만 난 그것이 진정한 해결책이라고 생각하지 않는 예외 : 여기
어쩌면 당신은 내가 어떻게해야합니까 어떤 생각을해야합니까, 그래서 ...
이 거래에 rollbackOnly 설정을 해제 할 수있는 방법입니다하지만 난 그게 가장 좋은 방법은 너무하다고 생각하지 않아? 트랜잭션이 rollbackOnly
하는 데 사용되는 프록시 메커니즘에 따라 설정 여부
:
덕분에, IllegalArgumentException
와/캐치
답장을 보내 주셔서 감사합니다. (필자가 제공 한 링크의 일부만 읽을 수 있음), 일반적으로 내 사례에서 예외를 사용하지 않거나 런타임 예외를 사용하지 않는 것에 대해 이야기하고 있는지 여부는 알 수 없습니다. NB : (일부 클래스에서 다른 클래스로 던져지는 오류를 경고하기 위해 예외를 사용하고 있습니다) – RoD
@RoD 당신은 Effective Java book을 읽어야합니다. 모든 Java 개발자가 읽어야 할 책입니다. 하지만이 특정 측면을 이해하려면이 검색에서 반환 된 기사 (예외 : "flow control") (http://www.google.com/search?q=exceptions+%22flow+control%22)를 읽어보십시오. –