봄삭제 작업 중에 발생하는 예외를 무시하고 싶습니다.데이터베이스 ID가 더 이상 존재하지 않으면 삭제시 예외를 무시하는 방법?
@Tranactional
public void remove(Long id) {
try {
if (id != null) dao.delete(id); //CrudRepository
} catch (Exception e) {
//ignore any exceptions, it's not critical delete
}
}
문제 : (- 그것은 동시에 삭제되었을 수 있습니다 의미 ID가 데이터베이스에 더 이상 존재하지 않는 삭제 될 경우 예) 나는이 프로그램을 실행할 때, 나는 여전히 다음과 같은 예외를 받고 있어요. 내가 어떻게 그것을 무시할 수 있을까?
org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:526) ~[spring-orm-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) ~[spring-aop-4.2.6.RELEASE.jar:4.2.6.RELEASE]
: 제 생각에는
이 솔루션은
findOne
방법 및 엔티티가 전화를delete
방법이있는 경우 다음 (ID에 의해 기관이 아닌 방법을 삭제 호출)를 호출하는 것입니다 . 나열한 코드는 게시 한 예외를 throw하지 않습니다. – EJP글쎄, 로그는'dao.delete()'가있는 곳의 코드 라인을 가리키고 있습니다. – membersound