in persistence-commons/persistence-commons-reporting-parent/persistence-commons-reporting-api/src/main/java/org/kie/kogito/persistence/reporting/database/BaseDatabaseManagerImpl.java [79:133]
protected abstract TerminalPathSegment<T, J, M> buildTerminalPathSegment(final String segment,
final PathSegment parent,
final M mapping);
@Override
public void createArtifacts(final D mappingDefinition) {
try {
final ObjectWriter objectWriter = CloudEventUtils.Mapper.mapper().writerWithDefaultPrettyPrinter();
if (LOGGER.isInfoEnabled()) {
LOGGER.info(String.format("Creating artifacts for:%n%s", objectWriter.writeValueAsString(mappingDefinition)));
}
LOGGER.info("Building Context...");
final C context = createContext(mappingDefinition);
LOGGER.info("Creating TABLE...");
final String sourceTableName = mappingDefinition.getSourceTableName();
getEntityManager(sourceTableName)
.createNativeQuery(tableSqlBuilder.createTableSql(context))
.executeUpdate();
LOGGER.info("Creating INDEXES...");
getEntityManager(sourceTableName)
.createNativeQuery(indexesSqlBuilder.createTableIndexesSql(context))
.executeUpdate();
LOGGER.info("Creating INSERT TRIGGER FUNCTION...");
getEntityManager(sourceTableName)
.createNativeQuery(triggerInsertSqlBuilder.createInsertTriggerFunctionSql(context))
.executeUpdate();
LOGGER.info("Creating INSERT TRIGGER...");
getEntityManager(sourceTableName)
.createNativeQuery(triggerInsertSqlBuilder.createInsertTriggerSql(context))
.executeUpdate();
LOGGER.info("Creating DELETE TRIGGER FUNCTION...");
getEntityManager(sourceTableName)
.createNativeQuery(triggerDeleteSqlBuilder.createDeleteTriggerFunctionSql(context))
.executeUpdate();
LOGGER.info("Creating DELETE TRIGGER...");
getEntityManager(sourceTableName)
.createNativeQuery(triggerDeleteSqlBuilder.createDeleteTriggerSql(context))
.executeUpdate();
LOGGER.info("Applying mappings to existing data...");
getEntityManager(sourceTableName)
.createNativeQuery(applyMappingSqlBuilder.apply(context))
.executeUpdate();
} catch (JsonProcessingException jpe) {
LOGGER.error(jpe.getMessage());
}
}