public <T, ID> void doOperation(OperationMode operationMode, CrudRepository<T, ID> repo, T object, ID id) { switch (operationMode) { case UPDATE: case INSERT: repo.save(object); break; case DELETE: if (repo.existsById(id)) { repo.deleteById(id); } break; default: throw new IllegalArgumentException(operationMode + " is not supported"); } }