migration fixes
This commit is contained in:
parent
a056c8fd1d
commit
cbd8041c84
|
@ -265,6 +265,12 @@ public class DatasetMigrationService {
|
||||||
|
|
||||||
this.entityManager.flush();
|
this.entityManager.flush();
|
||||||
|
|
||||||
|
this.sortFieldSets(propertyDefinitionEntity, createdDescriptionReferenceEntities);
|
||||||
|
|
||||||
|
return propertyDefinitionEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sortFieldSets(PropertyDefinitionEntity propertyDefinitionEntity, List<DescriptionReferenceEntity> createdDescriptionReferenceEntities){
|
||||||
Map<UUID, DescriptionReferenceEntity> descriptionReferenceEntitiesMap = createdDescriptionReferenceEntities.stream().collect(Collectors.toMap(DescriptionReferenceEntity::getId, x-> x));
|
Map<UUID, DescriptionReferenceEntity> descriptionReferenceEntitiesMap = createdDescriptionReferenceEntities.stream().collect(Collectors.toMap(DescriptionReferenceEntity::getId, x-> x));
|
||||||
Map<UUID, DescriptionReferenceDataEntity> descriptionReferenceDataEntityById = new HashMap<>();
|
Map<UUID, DescriptionReferenceDataEntity> descriptionReferenceDataEntityById = new HashMap<>();
|
||||||
for (DescriptionReferenceEntity descriptionReferenceEntity : createdDescriptionReferenceEntities){
|
for (DescriptionReferenceEntity descriptionReferenceEntity : createdDescriptionReferenceEntities){
|
||||||
|
@ -272,28 +278,24 @@ public class DatasetMigrationService {
|
||||||
if (propertyDefinition != null) descriptionReferenceDataEntityById.put(descriptionReferenceEntity.getId(), propertyDefinition);
|
if (propertyDefinition != null) descriptionReferenceDataEntityById.put(descriptionReferenceEntity.getId(), propertyDefinition);
|
||||||
}
|
}
|
||||||
for (PropertyDefinitionFieldSetEntity fieldSetEntity : propertyDefinitionEntity.getFieldSets().values()){
|
for (PropertyDefinitionFieldSetEntity fieldSetEntity : propertyDefinitionEntity.getFieldSets().values()){
|
||||||
int newOrdinal = 0;
|
LinkedList<PropertyDefinitionFieldSetItemEntity> sortedPropertyDefinitionFieldSetItemEntities = new LinkedList<>();
|
||||||
PropertyDefinitionFieldSetItemEntity firstFieldSet = fieldSetEntity.getItems().stream().findFirst().filter(x-> x.getOrdinal() == SimpleFieldSetOrdinal).orElse(null);
|
fieldSetEntity.getItems().stream().findFirst().filter(x -> x.getOrdinal() == SimpleFieldSetOrdinal).ifPresent(sortedPropertyDefinitionFieldSetItemEntities::addLast);
|
||||||
if (firstFieldSet != null){
|
|
||||||
this.ensureDescriptionReferenceOrdinal(firstFieldSet, descriptionReferenceEntitiesMap, descriptionReferenceDataEntityById, newOrdinal);
|
|
||||||
firstFieldSet.setOrdinal(newOrdinal);
|
|
||||||
newOrdinal++;
|
|
||||||
|
|
||||||
}
|
|
||||||
for (PropertyDefinitionFieldSetItemEntity propertyDefinitionFieldSetItemEntity : fieldSetEntity.getItems().stream().filter(x-> x.getOrdinal() >= 0 && x.getOrdinal() != SimpleFieldSetOrdinal).sorted(Comparator.comparingInt(PropertyDefinitionFieldSetItemEntity::getOrdinal)).toList()){
|
for (PropertyDefinitionFieldSetItemEntity propertyDefinitionFieldSetItemEntity : fieldSetEntity.getItems().stream().filter(x-> x.getOrdinal() >= 0 && x.getOrdinal() != SimpleFieldSetOrdinal).sorted(Comparator.comparingInt(PropertyDefinitionFieldSetItemEntity::getOrdinal)).toList()){
|
||||||
this.ensureDescriptionReferenceOrdinal(propertyDefinitionFieldSetItemEntity, descriptionReferenceEntitiesMap, descriptionReferenceDataEntityById, newOrdinal);
|
sortedPropertyDefinitionFieldSetItemEntities.addLast(propertyDefinitionFieldSetItemEntity);
|
||||||
propertyDefinitionFieldSetItemEntity.setOrdinal(newOrdinal);
|
|
||||||
newOrdinal++;
|
|
||||||
}
|
}
|
||||||
for (PropertyDefinitionFieldSetItemEntity propertyDefinitionFieldSetItemEntity : fieldSetEntity.getItems().stream().filter(x-> x.getOrdinal() < 0 && x.getOrdinal() != SimpleFieldSetOrdinal).sorted(Comparator.comparingInt(PropertyDefinitionFieldSetItemEntity::getOrdinal)).toList()){
|
for (PropertyDefinitionFieldSetItemEntity propertyDefinitionFieldSetItemEntity : fieldSetEntity.getItems().stream().filter(x-> x.getOrdinal() < 0 && x.getOrdinal() != SimpleFieldSetOrdinal).sorted(Comparator.comparingInt(PropertyDefinitionFieldSetItemEntity::getOrdinal)).toList()){
|
||||||
this.ensureDescriptionReferenceOrdinal(propertyDefinitionFieldSetItemEntity, descriptionReferenceEntitiesMap, descriptionReferenceDataEntityById, newOrdinal);
|
sortedPropertyDefinitionFieldSetItemEntities.addLast(propertyDefinitionFieldSetItemEntity);
|
||||||
propertyDefinitionFieldSetItemEntity.setOrdinal(newOrdinal);
|
}
|
||||||
newOrdinal++;
|
|
||||||
|
for (int ordinal = 0; ordinal < sortedPropertyDefinitionFieldSetItemEntities.size(); ordinal++){
|
||||||
|
PropertyDefinitionFieldSetItemEntity fieldSet = sortedPropertyDefinitionFieldSetItemEntities.get(ordinal);
|
||||||
|
this.ensureDescriptionReferenceOrdinal(fieldSet, descriptionReferenceEntitiesMap, descriptionReferenceDataEntityById, ordinal);
|
||||||
|
fieldSet.setOrdinal(ordinal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.entityManager.flush();
|
this.entityManager.flush();
|
||||||
return propertyDefinitionEntity;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ensureDescriptionReferenceOrdinal(PropertyDefinitionFieldSetItemEntity propertyDefinitionFieldSetItemEntity, Map<UUID, DescriptionReferenceEntity> descriptionReferenceEntitiesMap, Map<UUID, DescriptionReferenceDataEntity> descriptionReferenceDataEntityById, int newOrdinal){
|
private void ensureDescriptionReferenceOrdinal(PropertyDefinitionFieldSetItemEntity propertyDefinitionFieldSetItemEntity, Map<UUID, DescriptionReferenceEntity> descriptionReferenceEntitiesMap, Map<UUID, DescriptionReferenceDataEntity> descriptionReferenceDataEntityById, int newOrdinal){
|
||||||
|
|
Loading…
Reference in New Issue