From 60c5d336875795d7442bc92ba9c8a37c4f350b8b Mon Sep 17 00:00:00 2001 From: Michael Simon <simon@kit.edu> Date: Tue, 15 Dec 2020 14:06:44 +0100 Subject: [PATCH] Change identity to user to no cascading and do it manually This is really slow with cascading sometimes --- .../edu/kit/scc/webreg/entity/identity/IdentityEntity.java | 4 +--- .../kit/scc/webreg/service/identity/IdentityServiceImpl.java | 2 ++ .../kit/scc/webreg/service/impl/UserDeleteServiceImpl.java | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bwreg-jpa/src/main/java/edu/kit/scc/webreg/entity/identity/IdentityEntity.java b/bwreg-jpa/src/main/java/edu/kit/scc/webreg/entity/identity/IdentityEntity.java index cc1108751..dde131ea8 100644 --- a/bwreg-jpa/src/main/java/edu/kit/scc/webreg/entity/identity/IdentityEntity.java +++ b/bwreg-jpa/src/main/java/edu/kit/scc/webreg/entity/identity/IdentityEntity.java @@ -12,7 +12,6 @@ package edu.kit.scc.webreg.entity.identity; import java.util.Set; -import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinColumn; @@ -35,8 +34,7 @@ public class IdentityEntity extends AbstractBaseEntity { @Column(name="twofa_user_name", length=512) private String twoFaUserName; - @OneToMany(targetEntity=UserEntity.class, mappedBy = "identity", - cascade = CascadeType.ALL) + @OneToMany(targetEntity=UserEntity.class, mappedBy = "identity") private Set<UserEntity> users; @OneToMany(targetEntity=IdentityUserPreferenceEntity.class, mappedBy = "identity") diff --git a/bwreg-service/src/main/java/edu/kit/scc/webreg/service/identity/IdentityServiceImpl.java b/bwreg-service/src/main/java/edu/kit/scc/webreg/service/identity/IdentityServiceImpl.java index cb1f5bbea..874019379 100644 --- a/bwreg-service/src/main/java/edu/kit/scc/webreg/service/identity/IdentityServiceImpl.java +++ b/bwreg-service/src/main/java/edu/kit/scc/webreg/service/identity/IdentityServiceImpl.java @@ -91,6 +91,8 @@ public class IdentityServiceImpl extends BaseServiceImpl<IdentityEntity, Long> i id.setTwoFaUserName(user.getEppn()); else id.setTwoFaUserName(UUID.randomUUID().toString()); + + logger.info("Add missing 2fa userId {} and 2fa username {}", id.getTwoFaUserId(), id.getTwoFaUserName()); } } else { diff --git a/bwreg-service/src/main/java/edu/kit/scc/webreg/service/impl/UserDeleteServiceImpl.java b/bwreg-service/src/main/java/edu/kit/scc/webreg/service/impl/UserDeleteServiceImpl.java index 6ec7264bd..c095ddb83 100644 --- a/bwreg-service/src/main/java/edu/kit/scc/webreg/service/impl/UserDeleteServiceImpl.java +++ b/bwreg-service/src/main/java/edu/kit/scc/webreg/service/impl/UserDeleteServiceImpl.java @@ -86,7 +86,9 @@ public class UserDeleteServiceImpl implements UserDeleteService { logger.info("Delete all personal user data for identity {}", identity.getId()); identity = identityDao.merge(identity); - for (UserEntity user : identity.getUsers()) { + List<UserEntity> userList = userDao.findByIdentity(identity); + + for (UserEntity user : userList) { logger.info("Delete all personal user data for user {}", user.getId()); UserDeleteAuditor auditor = new UserDeleteAuditor(auditEntryDao, auditDetailDao, appConfig); -- GitLab