From be4e723911f10ffeddc15d629f4cc5406d8526df Mon Sep 17 00:00:00 2001 From: sgiannopoulos Date: Wed, 22 Nov 2023 18:34:51 +0200 Subject: [PATCH] detach entities for migration --- .../eudat/migration/DataRepositoryMigrationService.java | 9 +++++---- .../eudat/migration/ExternalDatasetMigrationService.java | 9 +++++---- .../eu/old/eudat/migration/FunderMigrationService.java | 9 +++++---- .../eu/old/eudat/migration/GrantMigrationService.java | 9 +++++---- .../eudat/migration/OrganizationMigrationService.java | 3 ++- .../eu/old/eudat/migration/ProjectMigrationService.java | 9 +++++---- .../eu/old/eudat/migration/RegistryMigrationService.java | 9 +++++---- .../old/eudat/migration/ResearcherMigrationService.java | 3 ++- .../eu/old/eudat/migration/ServiceMigrationService.java | 9 +++++---- 9 files changed, 39 insertions(+), 30 deletions(-) diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/DataRepositoryMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/DataRepositoryMigrationService.java index 81159be8b..abcd4ef57 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/DataRepositoryMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/DataRepositoryMigrationService.java @@ -29,17 +29,18 @@ public class DataRepositoryMigrationService { } public void migrate(){ - DataRepositoryDao DataRepositoryDao = databaseRepository.getDataRepositoryDao(); - long total = DataRepositoryDao.asQueryable().count(); + DataRepositoryDao dataRepositoryDao = databaseRepository.getDataRepositoryDao(); + long total = dataRepositoryDao.asQueryable().count(); logger.debug("Migrate DataRepository Total : " + total); int page = 0; List items; do { - items = DataRepositoryDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); + items = dataRepositoryDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); if (items != null && !items.isEmpty()) { logger.debug("Migrate DataRepository " + page * PageSize + " of " + total); for (DataRepository item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null DataRepository " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -58,7 +59,7 @@ public class DataRepositoryMigrationService { data.setUpdatedAt(item.getModified().toInstant()); if (item.getCreationUser() != null) data.setCreatedById(item.getCreationUser().getId()); data.setReference(referenceParts[1]); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(isInternal? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); } diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ExternalDatasetMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ExternalDatasetMigrationService.java index a2b224b42..f2b97d288 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ExternalDatasetMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ExternalDatasetMigrationService.java @@ -30,17 +30,18 @@ public class ExternalDatasetMigrationService { } public void migrate(){ - ExternalDatasetDao ExternalDatasetDao = databaseRepository.getExternalDatasetDao(); - long total = ExternalDatasetDao.asQueryable().count(); + ExternalDatasetDao externalDatasetDao = databaseRepository.getExternalDatasetDao(); + long total = externalDatasetDao.asQueryable().count(); logger.debug("Migrate ExternalDataset Total : " + total); int page = 0; List items; do { - items = ExternalDatasetDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); + items = externalDatasetDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); if (items != null && !items.isEmpty()) { logger.debug("Migrate ExternalDataset " + page * PageSize + " of " + total); for (ExternalDataset item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null ExternalDataset " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -59,7 +60,7 @@ public class ExternalDatasetMigrationService { data.setUpdatedAt(item.getModified().toInstant()); if (item.getCreationUser() != null) data.setCreatedById(item.getCreationUser().getId()); data.setReference(referenceParts[1]); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(isInternal? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); } diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/FunderMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/FunderMigrationService.java index 3c03f71cb..d295e10c6 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/FunderMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/FunderMigrationService.java @@ -30,17 +30,18 @@ public class FunderMigrationService { } public void migrate(){ - FunderDao FunderDao = databaseRepository.getFunderDao(); - long total = FunderDao.asQueryable().count(); + FunderDao funderDao = databaseRepository.getFunderDao(); + long total = funderDao.asQueryable().count(); logger.debug("Migrate Funder Total : " + total); int page = 0; List items; do { - items = FunderDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); + items = funderDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); if (items != null && !items.isEmpty()) { logger.debug("Migrate Funder " + page * PageSize + " of " + total); for (Funder item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null Funder " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -59,7 +60,7 @@ public class FunderMigrationService { data.setUpdatedAt(item.getModified().toInstant()); if (item.getCreationUser() != null) data.setCreatedById(item.getCreationUser().getId()); data.setReference(referenceParts[1]); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(Funder.FunderType.INTERNAL.getValue().equals(item.getType())? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); } diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/GrantMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/GrantMigrationService.java index a91708e9a..52f0f3656 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/GrantMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/GrantMigrationService.java @@ -30,17 +30,18 @@ public class GrantMigrationService { } public void migrate(){ - GrantDao GrantDao = databaseRepository.getGrantDao(); - long total = GrantDao.asQueryable().count(); + GrantDao grantDao = databaseRepository.getGrantDao(); + long total = grantDao.asQueryable().count(); logger.debug("Migrate Grant Total : " + total); int page = 0; List items; do { - items = GrantDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); + items = grantDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); if (items != null && !items.isEmpty()) { logger.debug("Migrate Grant " + page * PageSize + " of " + total); for (Grant item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null Grant " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -59,7 +60,7 @@ public class GrantMigrationService { data.setUpdatedAt(item.getModified().toInstant()); if (item.getCreationUser() != null) data.setCreatedById(item.getCreationUser().getId()); data.setReference(referenceParts[1]); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(isInternal ? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); } diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/OrganizationMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/OrganizationMigrationService.java index 67c29b91f..b26fd3719 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/OrganizationMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/OrganizationMigrationService.java @@ -42,6 +42,7 @@ public class OrganizationMigrationService { if (items != null && !items.isEmpty()) { logger.debug("Migrate Organisation " + page * PageSize + " of " + total); for (Organisation item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null Organisation " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -61,7 +62,7 @@ public class OrganizationMigrationService { data.setUpdatedAt(item.getModified().toInstant()); data.setReference(referenceParts[1]); data.setAbbreviation(item.getAbbreviation()); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(isInternal? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); } diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ProjectMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ProjectMigrationService.java index fd26f5564..d6424013e 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ProjectMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ProjectMigrationService.java @@ -30,17 +30,18 @@ public class ProjectMigrationService { } public void migrate(){ - ProjectDao ProjectDao = databaseRepository.getProjectDao(); - long total = ProjectDao.asQueryable().count(); + ProjectDao projectDao = databaseRepository.getProjectDao(); + long total = projectDao.asQueryable().count(); logger.debug("Migrate Project Total : " + total); int page = 0; List items; do { - items = ProjectDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); + items = projectDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); if (items != null && !items.isEmpty()) { logger.debug("Migrate Project " + page * PageSize + " of " + total); for (Project item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null Project " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -60,7 +61,7 @@ public class ProjectMigrationService { data.setUpdatedAt(item.getModified().toInstant()); if (item.getCreationUser() != null) data.setCreatedById(item.getCreationUser().getId()); data.setReference(referenceParts[1]); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(Project.ProjectType.INTERNAL.getValue().equals(item.getType())? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); } diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/RegistryMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/RegistryMigrationService.java index adca99673..b1f775ce2 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/RegistryMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/RegistryMigrationService.java @@ -30,17 +30,18 @@ public class RegistryMigrationService { } public void migrate(){ - RegistryDao RegistryDao = databaseRepository.getRegistryDao(); - long total = RegistryDao.asQueryable().count(); + RegistryDao registryDao = databaseRepository.getRegistryDao(); + long total = registryDao.asQueryable().count(); logger.debug("Migrate Registry Total : " + total); int page = 0; List items; do { - items = RegistryDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); + items = registryDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); if (items != null && !items.isEmpty()) { logger.debug("Migrate Registry " + page * PageSize + " of " + total); for (Registry item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null Registry " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -59,7 +60,7 @@ public class RegistryMigrationService { data.setUpdatedAt(item.getModified().toInstant()); if (item.getCreationUser() != null) data.setCreatedById(item.getCreationUser().getId()); data.setReference(referenceParts[1]); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(isInternal? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); } diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ResearcherMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ResearcherMigrationService.java index bfe97470b..0285ba0c2 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ResearcherMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ResearcherMigrationService.java @@ -43,6 +43,7 @@ public class ResearcherMigrationService { if (items != null && !items.isEmpty()) { logger.debug("Migrate Researcher " + page * PageSize + " of " + total); for (Researcher item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null Researcher " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -61,7 +62,7 @@ public class ResearcherMigrationService { data.setUpdatedAt(item.getModified().toInstant()); if (item.getCreationUser() != null) data.setCreatedById(item.getCreationUser().getId()); data.setReference(referenceParts[1]); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(isInternal? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); } diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ServiceMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ServiceMigrationService.java index 4e5169073..30ab922dd 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ServiceMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/ServiceMigrationService.java @@ -29,17 +29,18 @@ public class ServiceMigrationService { } public void migrate(){ - ServiceDao ServiceDao = databaseRepository.getServiceDao(); - long total = ServiceDao.asQueryable().count(); + ServiceDao serviceDao = databaseRepository.getServiceDao(); + long total = serviceDao.asQueryable().count(); logger.debug("Migrate Service Total : " + total); int page = 0; List items; do { - items = ServiceDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); + items = serviceDao.asQueryable().orderBy((builder, root) -> builder.asc(root.get("created"))).orderBy((builder, root) -> builder.asc(root.get("ID"))).skip(page * PageSize).take(PageSize).toList(); if (items != null && !items.isEmpty()) { logger.debug("Migrate Service " + page * PageSize + " of " + total); for (eu.old.eudat.data.entities.Service item : items) { + entityManager.detach(item); if (item.getReference() == null || !item.getReference().contains(":")){ logger.warn("Reference generated because is null Service " + item.getId()); item.setReference(InternalReferenceSource + ":" + item.getId().toString().toLowerCase(Locale.ROOT)); @@ -59,7 +60,7 @@ public class ServiceMigrationService { data.setUpdatedAt(item.getModified().toInstant()); if (item.getCreationUser() != null) data.setCreatedById(item.getCreationUser().getId()); data.setReference(referenceParts[1]); - data.setSource(referenceParts[0]); + data.setSource(isInternal? "Internal" : referenceParts[0]); data.setSourceType(isInternal? ReferenceSourceType.Internal : ReferenceSourceType.External); this.entityManager.persist(data); }