Improve tag unique persistence
This commit is contained in:
parent
d6c8803c9f
commit
e68bc2a822
|
@ -28,6 +28,7 @@ import eu.eudat.logic.utilities.documents.helpers.FileEnvelope;
|
||||||
import eu.eudat.logic.utilities.documents.types.ParagraphStyle;
|
import eu.eudat.logic.utilities.documents.types.ParagraphStyle;
|
||||||
import eu.eudat.logic.utilities.documents.word.WordBuilder;
|
import eu.eudat.logic.utilities.documents.word.WordBuilder;
|
||||||
import eu.eudat.logic.utilities.documents.xml.ExportXmlBuilder;
|
import eu.eudat.logic.utilities.documents.xml.ExportXmlBuilder;
|
||||||
|
import eu.eudat.logic.utilities.helpers.StreamDistinctBy;
|
||||||
import eu.eudat.models.HintedModelFactory;
|
import eu.eudat.models.HintedModelFactory;
|
||||||
import eu.eudat.models.data.datasetImport.DatasetImportField;
|
import eu.eudat.models.data.datasetImport.DatasetImportField;
|
||||||
import eu.eudat.models.data.datasetImport.DatasetImportPagedDatasetProfile;
|
import eu.eudat.models.data.datasetImport.DatasetImportPagedDatasetProfile;
|
||||||
|
@ -591,7 +592,8 @@ public class DatasetManager {
|
||||||
dataset.setId(datasetWizardModel.getId().toString());
|
dataset.setId(datasetWizardModel.getId().toString());
|
||||||
DatasetCriteria criteria = new DatasetCriteria();
|
DatasetCriteria criteria = new DatasetCriteria();
|
||||||
criteria.setTags(datasetWizardModel.getTags());
|
criteria.setTags(datasetWizardModel.getTags());
|
||||||
List<Tag> tags = apiContext.getOperationsContext().getDatasetRepository().query(criteria).stream().map(eu.eudat.elastic.entities.Dataset::getTags).flatMap(Collection::stream).collect(Collectors.toList());
|
List<Tag> tags = apiContext.getOperationsContext().getDatasetRepository().query(criteria).stream().map(eu.eudat.elastic.entities.Dataset::getTags).flatMap(Collection::stream)
|
||||||
|
.filter(StreamDistinctBy.distinctByKey(Tag::getId)).filter(tag -> datasetWizardModel.getTags().stream().anyMatch(tag1 -> tag1.getName().equals(tag.getName()))).collect(Collectors.toList());
|
||||||
if (tags.isEmpty()) {
|
if (tags.isEmpty()) {
|
||||||
datasetWizardModel.getTags().forEach(tag -> tag.setId(UUID.randomUUID().toString()));
|
datasetWizardModel.getTags().forEach(tag -> tag.setId(UUID.randomUUID().toString()));
|
||||||
dataset.setTags(datasetWizardModel.getTags());
|
dataset.setTags(datasetWizardModel.getTags());
|
||||||
|
|
Loading…
Reference in New Issue