# 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.
