@Override
    public Optional<T_OBJ_TYPE> fetch(final T_ID_TYPE id) {
        LAMBDA_LOGGER.debug(() -> LogUtil.message("Fetching {} with id {}", table.getName(), id));
        final Optional<T_REC_TYPE> optional = JooqUtil.contextResult(connectionProvider, context -> context
                .selectFrom(table)
                .where(idField.eq(id))
                .fetchOptional());
        return optional.map(recordToObjectMapper);
    }
Will try to insert the record, but will fail silently if it already exists.
It will use keyField1 and keyField2 (a compound key) to retrieve the persisted
record if it already exists.

@return The persisted record
stroom-db-util/src/main/java/stroom/db/util/GenericDao.java