From 07cdb91b9ed947d89104b07b80222388af4e5f10 Mon Sep 17 00:00:00 2001 From: sgiannopoulos Date: Wed, 21 Feb 2024 09:55:29 +0200 Subject: [PATCH] renames --- .../eu/eudat/commons/enums/FieldType.java | 10 ++++---- .../DescriptionFieldDepositBuilder.java | 4 ++-- .../DescriptionPageToDatasetPageMapper.java | 1 - .../descriptionproperties/FieldPersist.java | 2 +- .../description/DescriptionServiceImpl.java | 5 ++-- .../FieldDataHelperServiceProvider.java | 4 ++-- .../service/language/LanguageServiceImpl.java | 18 ++++++++------- .../configurations/MyHibernateJpaDialect.java | 23 +++++++++++++++++++ .../web/src/main/resources/config/db.yml | 3 +++ 9 files changed, 48 insertions(+), 22 deletions(-) create mode 100644 dmp-backend/web/src/main/java/eu/eudat/configurations/MyHibernateJpaDialect.java diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/enums/FieldType.java b/dmp-backend/core/src/main/java/eu/eudat/commons/enums/FieldType.java index 1b459a1b4..6a76948a6 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/enums/FieldType.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/enums/FieldType.java @@ -9,8 +9,8 @@ public enum FieldType implements DatabaseEnum { SELECT(Names.Select), BOOLEAN_DECISION(Names.BooleanDecision), RADIO_BOX(Names.RadioBox), - INTERNAL_DMP_ENTRIES_DMPS(Names.InternalDmpDmps), //TODO: rename InternalEntitiesDmps - INTERNAL_DMP_ENTRIES_DATASETS(Names.InternalDmpDescriptions),//TODO: rename InternalEntitiesDescriptions + INTERNAL_ENTRIES_DMPS(Names.InternalDmpDmps), + INTERNAL_ENTRIES_DESCRIPTIONS(Names.InternalDmpDescriptions), CHECK_BOX(Names.CheckBox), FREE_TEXT(Names.FreeText), TEXT_AREA(Names.TextArea), @@ -69,12 +69,12 @@ public enum FieldType implements DatabaseEnum { return fieldType.equals(FieldType.FREE_TEXT) || fieldType.equals(FieldType.CHECK_BOX) || fieldType.equals(FieldType.TEXT_AREA) || fieldType.equals(FieldType.RICH_TEXT_AREA) || fieldType.equals(FieldType.UPLOAD) || fieldType.equals(FieldType.BOOLEAN_DECISION) || fieldType.equals(FieldType.RADIO_BOX) || fieldType.equals(FieldType.CURRENCY) || fieldType.equals(FieldType.SELECT) || - fieldType.equals(FieldType.INTERNAL_DMP_ENTRIES_DMPS) || fieldType.equals(FieldType.INTERNAL_DMP_ENTRIES_DATASETS); + fieldType.equals(FieldType.INTERNAL_ENTRIES_DMPS) || fieldType.equals(FieldType.INTERNAL_ENTRIES_DESCRIPTIONS); } public static boolean isTextListType(FieldType fieldType){ - return fieldType.equals(FieldType.SELECT) || fieldType.equals(FieldType.TAGS) || fieldType.equals(FieldType.INTERNAL_DMP_ENTRIES_DMPS) || - fieldType.equals(FieldType.INTERNAL_DMP_ENTRIES_DATASETS); + return fieldType.equals(FieldType.SELECT) || fieldType.equals(FieldType.TAGS) || fieldType.equals(FieldType.INTERNAL_ENTRIES_DMPS) || + fieldType.equals(FieldType.INTERNAL_ENTRIES_DESCRIPTIONS); } public static boolean isDateType(FieldType fieldType){ diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/builder/deposit/DescriptionFieldDepositBuilder.java b/dmp-backend/core/src/main/java/eu/eudat/model/builder/deposit/DescriptionFieldDepositBuilder.java index e39864af1..824509e87 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/builder/deposit/DescriptionFieldDepositBuilder.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/builder/deposit/DescriptionFieldDepositBuilder.java @@ -83,8 +83,8 @@ public class DescriptionFieldDepositBuilder extends BaseDepositBuilder m.setFieldType(FieldType.WORD_LIST); case BOOLEAN_DECISION -> m.setFieldType(FieldType.BOOLEAN_DECISION); case RADIO_BOX -> m.setFieldType(FieldType.RADIO_BOX); - case INTERNAL_DMP_ENTRIES_DMPS -> m.setFieldType(FieldType.INTERNAL_DMP_ENTRIES_DMPS); - case INTERNAL_DMP_ENTRIES_DATASETS -> m.setFieldType(FieldType.INTERNAL_DMP_ENTRIES_DATASETS); + case INTERNAL_ENTRIES_DMPS -> m.setFieldType(FieldType.INTERNAL_DMP_ENTRIES_DMPS); + case INTERNAL_ENTRIES_DESCRIPTIONS -> m.setFieldType(FieldType.INTERNAL_DMP_ENTRIES_DATASETS); case CHECK_BOX -> m.setFieldType(FieldType.CHECK_BOX); case FREE_TEXT -> m.setFieldType(FieldType.FREE_TEXT); case TEXT_AREA -> m.setFieldType(FieldType.TEXT_AREA); diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DescriptionPageToDatasetPageMapper.java b/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DescriptionPageToDatasetPageMapper.java index 104486fe1..6095994f6 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DescriptionPageToDatasetPageMapper.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DescriptionPageToDatasetPageMapper.java @@ -1,7 +1,6 @@ package eu.eudat.model.mapper.publicapi; import eu.eudat.model.descriptiontemplatedefinition.Page; -import eu.eudat.model.descriptiontemplatedefinition.Section; import eu.eudat.model.publicapi.datasetwizard.DatasetProfilePage; import org.springframework.stereotype.Component; diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptionproperties/FieldPersist.java b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptionproperties/FieldPersist.java index caaada642..6315d2495 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptionproperties/FieldPersist.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptionproperties/FieldPersist.java @@ -126,7 +126,7 @@ public class FieldPersist { .must(() -> this.isUUID(item.getTextValue())) .failOn(FieldPersist._textValue).failWith(messageSource.getMessage("Validation_UnexpectedValue", new Object[]{FieldPersist._textValue}, LocaleContextHolder.getLocale())), this.spec() - .iff(()-> !this.isNull(item.getTextListValue()) && (fieldType.equals(FieldType.INTERNAL_DMP_ENTRIES_DMPS) || fieldType.equals(FieldType.INTERNAL_DMP_ENTRIES_DATASETS))) + .iff(()-> !this.isNull(item.getTextListValue()) && (fieldType.equals(FieldType.INTERNAL_ENTRIES_DMPS) || fieldType.equals(FieldType.INTERNAL_ENTRIES_DESCRIPTIONS))) .must(() -> item.getTextListValue().stream().allMatch(this::isUUID)) .failOn(FieldPersist._textListValue).failWith(messageSource.getMessage("Validation_UnexpectedValue", new Object[]{FieldPersist._textListValue}, LocaleContextHolder.getLocale())), this.navSpec() diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/description/DescriptionServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/description/DescriptionServiceImpl.java index ec6c29407..09b28eaec 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/description/DescriptionServiceImpl.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/description/DescriptionServiceImpl.java @@ -66,7 +66,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.management.InvalidApplicationException; import java.io.IOException; import java.net.URLConnection; -import java.nio.file.Files; import java.time.Duration; import java.time.Instant; import java.util.*; @@ -412,13 +411,13 @@ public class DescriptionServiceImpl implements DescriptionService { } } else if (FieldType.isTextListType(fieldType)) { - if (FieldType.INTERNAL_DMP_ENTRIES_DMPS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ + if (FieldType.INTERNAL_ENTRIES_DMPS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ List ids = persist.getTextListValue().stream().map(UUID::fromString).toList(); Set existingIds = this.queryFactory.query(DmpQuery.class).ids(ids).isActive(IsActive.Active).collectAs(new BaseFieldSet().ensure(Dmp._id)).stream().map(DmpEntity::getId).collect(Collectors.toSet()); for (UUID id : ids){ if (!existingIds.contains(id)) throw new MyNotFoundException(messageSource.getMessage("General_ItemNotFound", new Object[]{id, Dmp.class.getSimpleName()}, LocaleContextHolder.getLocale())); } - } if (FieldType.INTERNAL_DMP_ENTRIES_DATASETS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ + } if (FieldType.INTERNAL_ENTRIES_DESCRIPTIONS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ List ids = persist.getTextListValue().stream().map(UUID::fromString).toList(); Set existingIds = this.queryFactory.query(DescriptionQuery.class).ids(ids).isActive(IsActive.Active).collectAs(new BaseFieldSet().ensure(Description._id)).stream().map(DescriptionEntity::getId).collect(Collectors.toSet()); for (UUID id : ids){ diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FieldDataHelperServiceProvider.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FieldDataHelperServiceProvider.java index e2526ee3a..1ecd6affc 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FieldDataHelperServiceProvider.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FieldDataHelperServiceProvider.java @@ -15,8 +15,8 @@ public class FieldDataHelperServiceProvider { BaseFieldDataHelperService item = null; switch (type) { - case INTERNAL_DMP_ENTRIES_DATASETS: - case INTERNAL_DMP_ENTRIES_DMPS: { + case INTERNAL_ENTRIES_DESCRIPTIONS: + case INTERNAL_ENTRIES_DMPS: { item = this.applicationContext.getBean(LabelAndMultiplicityFieldDataHelperService.class); break; } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/language/LanguageServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/language/LanguageServiceImpl.java index 47892b25b..1d99b8367 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/language/LanguageServiceImpl.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/language/LanguageServiceImpl.java @@ -24,6 +24,8 @@ import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.MapLogEntry; import jakarta.persistence.EntityManager; +import org.hibernate.FlushMode; +import org.hibernate.annotations.FlushModeType; import org.slf4j.LoggerFactory; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; @@ -75,10 +77,11 @@ public class LanguageServiceImpl implements LanguageService { LanguageEntity data; if (isUpdate) { + ((org.hibernate.Session) entityManager).setHibernateFlushMode(FlushMode.MANUAL); data = this.entityManager.find(LanguageEntity.class, model.getId()); if (data == null) throw new MyNotFoundException(messageSource.getMessage("General_ItemNotFound", new Object[]{model.getId(), Language.class.getSimpleName()}, LocaleContextHolder.getLocale())); - if (!this.conventionService.hashValue(data.getUpdatedAt()).equals(model.getHash())) throw new MyValidationException(this.errors.getHashConflict().getCode(), this.errors.getHashConflict().getMessage()); + if (!this.conventionService.hashValue(data.getUpdatedAt()).equals(model.getHash())) throw new MyValidationException(this.errors.getHashConflict().getCode(), this.errors.getHashConflict().getMessage()); } else { data = new LanguageEntity(); @@ -86,16 +89,15 @@ public class LanguageServiceImpl implements LanguageService { data.setIsActive(IsActive.Active); data.setCreatedAt(Instant.now()); } - data.setCode(model.getCode()); - data.setPayload(model.getPayload() != null && model.getPayload().length() > 0 ? model.getPayload() : null); + data.setPayload(model.getPayload() != null && !model.getPayload().isEmpty() ? model.getPayload() : null); data.setOrdinal(model.getOrdinal()); data.setUpdatedAt(Instant.now()); - - if (isUpdate) this.entityManager.merge(data); - else this.entityManager.persist(data); - - this.entityManager.flush(); + data.setIsActive(IsActive.Inactive); +// if (isUpdate) this.entityManager.merge(data); +// else this.entityManager.persist(data); +// +// this.entityManager.flush(); return this.builderFactory.builder(LanguageBuilder.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).build(BaseFieldSet.build(fields, Language._id), data); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/configurations/MyHibernateJpaDialect.java b/dmp-backend/web/src/main/java/eu/eudat/configurations/MyHibernateJpaDialect.java new file mode 100644 index 000000000..df1637389 --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/configurations/MyHibernateJpaDialect.java @@ -0,0 +1,23 @@ +//package eu.eudat.configurations; +// +//import jakarta.persistence.PersistenceException; +//import org.hibernate.FlushMode; +//import org.hibernate.Session; +//import org.springframework.context.annotation.Bean; +//import org.springframework.lang.Nullable; +//import org.springframework.orm.jpa.JpaVendorAdapter; +//import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +//import org.springframework.orm.jpa.vendor.HibernateJpaDialect; +//import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; +//import org.springframework.stereotype.Service; +// +//import javax.sql.DataSource; +//import java.sql.SQLException; +// +//@Service +//public class MyHibernateJpaDialect extends HibernateJpaDialect { +// @Override +// protected FlushMode prepareFlushMode(Session session, boolean readOnly) throws PersistenceException { +// return null; +// } +//} \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/config/db.yml b/dmp-backend/web/src/main/resources/config/db.yml index 5f68f3510..519502f2d 100644 --- a/dmp-backend/web/src/main/resources/config/db.yml +++ b/dmp-backend/web/src/main/resources/config/db.yml @@ -7,6 +7,9 @@ spring: jpa: properties: + org: + hibernate: + flushMode: MANUAL hibernate: globally_quoted_identifiers: true ddl-auto: validate