Fixed problem with PersonNames when importing Persons

deploy_packages_to_gitea
Jens Pelzetter 2023-01-29 13:02:46 +01:00
parent 67078ab385
commit 8f77d0726e
1 changed files with 46 additions and 3 deletions

View File

@ -20,6 +20,8 @@ package org.librecms.assets;
import java.util.Objects;
import javax.inject.Inject;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
@ -27,6 +29,9 @@ import java.util.Objects;
public class PersonImExporter
extends AbstractContactableEntityImExporter<Person> {
@Inject
private PersonNameRepository personNameRepo;
@Override
public Class<Person> getEntityClass() {
return Person.class;
@ -46,9 +51,47 @@ public class PersonImExporter
existingContactable.getPersonNames(),
importedContactable.getPersonNames()
)) {
existingContactable.setPersonNames(
importedContactable.getPersonNames()
);
// existingContactable.setPersonNames(
// importedContactable.getPersonNames()
// );
for (int i = 0;
i < existingContactable.getPersonNames().size()
&& i < importedContactable.getPersonNames().size();
i++) {
final PersonName existing = existingContactable
.getPersonNames()
.get(i);
final PersonName imported = importedContactable
.getPersonNames()
.get(i);
if (!Objects.equals(existing, imported)) {
existing.setGivenName(imported.getGivenName());
existing.setPrefix(imported.getPrefix());
existing.setSuffix(imported.getSuffix());
existing.setSurname(imported.getSurname());
personNameRepo.save(existing);
}
}
if (importedContactable.getPersonNames().size()
> existingContactable.getPersonNames().size()) {
for (int i = existingContactable.getPersonNames().size();
i < importedContactable.getPersonNames().size();
i++) {
final PersonName imported = importedContactable
.getPersonNames()
.get(i);
final PersonName newPersonName = new PersonName();
newPersonName.setGivenName(imported.getGivenName());
newPersonName.setPrefix(imported.getPrefix());
newPersonName.setSuffix(imported.getSuffix());
newPersonName.setSurname(imported.getSurname());
existingContactable.addPersonName(newPersonName);
personNameRepo.save(imported);
}
}
}
if (!Objects.equals(