Uso Spring, así que lo resolvemos con org.springframework.dao.DataIntegrityViolationException
try {
ao_history_repository.save(new AoHistory(..));
} catch (DataIntegrityViolationException e) {
System.out.println("history already exist");
}
Pero como @KevinGuancheDarias mencionarlo: