# Why skip(DataIntegrityViolationException.class) also catches the duplicate-key case thrown type : org.springframework.dao.DuplicateKeyException is a DataIntegrityViolationException? true H2's JdbcBatchUpdateException on a UNIQUE-constraint violation is translated by Spring's SQLExceptionSubclassTranslator into DuplicateKeyException, which extends DataIntegrityViolationException. A skip policy configured against the parent class catches the subclass too -- see docs/07-restartability.md and docs/08-skip-vs-restart.md.