public void bulkCreate(final List<MetaProperties> metaPropertiesList, final Status status) {
        // ensure we have all the parent records and capture all their ids
        final Map<String, Integer> feedIds = metaPropertiesList.stream()
                .map(MetaProperties::getFeedName)
                .filter(Objects::nonNull)
                .distinct()
                .map(feedName -> Tuple.of(feedName, feedDao.getOrCreate(feedName)))
                .collect(Collectors.toMap(Tuple2::_1, Tuple2::_2));

        final Map<String, Integer> typeIds = metaPropertiesList.stream()
                .map(MetaProperties::getTypeName)
                .filter(Objects::nonNull)
                .distinct()
                .map(typeName -> Tuple.of(typeName, metaTypeDao.getOrCreate(typeName)))
                .collect(Collectors.toMap(Tuple2::_1, Tuple2::_2));

        final Map<String, Integer> processorIds = metaPropertiesList.stream()
                .filter(metaProperties ->
                        metaProperties.getProcessorUuid() != null &&
                        metaProperties.getPipelineUuid() != null)
                .map(metaProperties -> Tuple.of(metaProperties.getProcessorUuid(), metaProperties.getPipelineUuid()))
                .distinct()
                .map(tuple -> Tuple.of(
                        tuple._1(),
                        metaProcessorDao.getOrCreate(tuple._1(), tuple._2())))
                .collect(Collectors.toMap(Tuple2::_1, Tuple2::_2));

        byte statusId = MetaStatusId.getPrimitiveValue(status);

        // Create a batch of insert stmts, each with n value sets
        JooqUtil.context(metaDbConnProvider, context -> context
                .batch(
                        BatchingIterator.batchedStreamOf(metaPropertiesList, MAX_VALUES_PER_INSERT)
                                .map(metaPropertiesBatch -> {
                                    final var insertStep = context
                                            .insertInto(META,
                                                    META.CREATE_TIME,
                                                    META.EFFECTIVE_TIME,
                                                    META.PARENT_ID,
                                                    META.STATUS,
                                                    META.STATUS_TIME,
                                                    META.FEED_ID,
                                                    META.TYPE_ID,
                                                    META.PROCESSOR_ID,
                                                    META.PROCESSOR_FILTER_ID,
                                                    META.PROCESSOR_TASK_ID);

                                    metaPropertiesBatch.forEach(metaProperties ->
                                            insertStep.values(
                                                    metaProperties.getCreateMs(),
                                                    metaProperties.getEffectiveMs(),
                                                    metaProperties.getParentId(),
                                                    statusId,
                                                    metaProperties.getStatusMs(),
                                                    metaProperties.getFeedName() == null
                                                            ? null
                                                            : feedIds.get(metaProperties.getFeedName()),
                                                    metaProperties.getTypeName() == null
                                                            ? null
                                                            : typeIds.get(metaProperties.getTypeName()),
                                                    metaProperties.getProcessorUuid() == null
                                                            ? null
                                                            : processorIds.get(metaProperties.getProcessorUuid()),
                                                    metaProperties.getProcessorFilterId(),
                                                    metaProperties.getProcessorTaskId()));
                                    return insertStep;
                                })
                                .collect(Collectors.toList()))
                .execute());
    }
Method currently only here for test purposes as a means of bulk loading data.
stroom-meta/stroom-meta-impl-db/src/main/java/stroom/meta/impl/db/MetaDaoImpl.java