in src/main/java/com/epam/digital/data/platform/liquibase/extension/change/core/DdmCreateCompositeEntityChange.java [135:160]
private DdmNestedEntityConfig convertChangeToConfig(DdmCreateTableChange change) {
DdmNestedEntityConfig nestedEntity = new DdmNestedEntityConfig();
List<String> linkColumns = nestedEntities.stream()
.filter(entity -> entity.getTable().equals(change.getTableName()))
.flatMap(entity -> entity.getLinkConfig().stream())
.map(DdmLinkConfig::getColumn)
.collect(Collectors.toList());
List<DdmLinkConfig> links = new ArrayList<>();
for (ColumnConfig column : change.getColumns()) {
for (String linkColumn : linkColumns) {
DdmLinkConfig link = new DdmLinkConfig();
if (column.getConstraints() != null &&
column.getConstraints().getForeignKeyName() != null &&
column.getName().equals(linkColumn)) {
link.setColumn(column.getName());
link.setEntityTable(column.getConstraints().getReferencedTableName());
links.add(link);
}
}
}
nestedEntity.setTable(change.getTableName());
nestedEntity.setLinkConfig(links);
return nestedEntity;
}