KON-28-Fix Save Problem
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/ExternalPersonService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/ExternalPersonService.java index 6ba6e67..b4e2ae8 100644 --- a/src/main/java/org/eclipse/openk/contactbasedata/service/ExternalPersonService.java +++ b/src/main/java/org/eclipse/openk/contactbasedata/service/ExternalPersonService.java
@@ -5,8 +5,6 @@ import org.eclipse.openk.contactbasedata.exceptions.NotFoundException; import org.eclipse.openk.contactbasedata.mapper.ContactMapper; import org.eclipse.openk.contactbasedata.mapper.ExternalPersonMapper; -import org.eclipse.openk.contactbasedata.model.RefPersonType; -import org.eclipse.openk.contactbasedata.model.RefSalutation; import org.eclipse.openk.contactbasedata.model.TblContact; import org.eclipse.openk.contactbasedata.model.TblExternalPerson; import org.eclipse.openk.contactbasedata.repository.ContactRepository; @@ -68,7 +66,6 @@ contactRepository.save(externalPersonToSave.getContact()); setFromExternalPersonDto( externalPersonToSave, externalPersonDto ); - // Save Contact first // Then save dependent Model-Object return externalPersonMapper.toExternalPersonDto(externalPersonRepository.save(externalPersonToSave)); @@ -78,38 +75,39 @@ public ExternalPersonDto updateExternalPerson(ExternalPersonDto externalPersonDto){ TblExternalPerson externalPersonUpdated; - //Externe Person holen TblExternalPerson existingExternalPerson = externalPersonRepository .findByTblContactUuid(externalPersonDto.getContactId()) .orElseThrow(() -> new NotFoundException("contact.uuid.not.existing")); -// TblExternalPerson externalPersonToSave = externalPersonMapper.toTblExternalPerson(externalPersonDto); -// externalPersonToSave.setId(existingExternalPerson.getId()); - existingExternalPerson.setLastName(externalPersonDto.getLastName()); existingExternalPerson.setFirstName(externalPersonDto.getFirstName()); existingExternalPerson.setTitle(externalPersonDto.getTitle()); setFromExternalPersonDto( existingExternalPerson, externalPersonDto ); - //setFromExternalPersonDto( externalPersonToSave, externalPersonDto ); externalPersonUpdated = externalPersonRepository.save(existingExternalPerson); - //externalPersonUpdated = externalPersonRepository.save(externalPersonToSave); return externalPersonMapper.toExternalPersonDto(externalPersonUpdated); } private void setFromExternalPersonDto( TblExternalPerson destTblExternalPerson, ExternalPersonDto sourceDto ) { - RefSalutation salutationUpdated = salutationRepository - .findByUuid(sourceDto.getSalutationId()) - .orElseThrow(() -> new NotFoundException("salutation.uuid.not.existing")); + if( sourceDto.getSalutationId() != null ) { + destTblExternalPerson.setSalutation( salutationRepository + .findByUuid(sourceDto.getSalutationId()) + .orElseThrow(() -> new NotFoundException("salutation.uuid.not.existing"))); + } + else { + destTblExternalPerson.setSalutation(null); + } - RefPersonType personTypeUpdated = personTypeRepository - .findByUuid(sourceDto.getPersonTypeId()) - .orElseThrow(() -> new NotFoundException("person.type.uuid.not.existing")); - - destTblExternalPerson.setSalutation(salutationUpdated); - destTblExternalPerson.setRefPersonType(personTypeUpdated); + if( sourceDto.getPersonTypeId() != null ) { + destTblExternalPerson.setRefPersonType( personTypeRepository + .findByUuid(sourceDto.getPersonTypeId()) + .orElseThrow(() -> new NotFoundException("person.type.uuid.not.existing"))); + } + else { + destTblExternalPerson.setRefPersonType(null); + } destTblExternalPerson.getContact().setNote(sourceDto.getContactNote()); }