Open Magador opened 7 years ago
The best solution, I think, is to configure ModelMapper to ignore nulls:
modelMapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
I think that this behavior is highly desirable and should be the default. I will take this into account when making ModelMapper assemblers configurable in business framework 4.0.
Apart from model mapper, can we add support for other mapping tools like dozer?
Probably we want also to integrate one example , showing directly working with UML stereotypes, like in enterprise architect?
ModelMapper was refactored as an add-on (https://search.maven.org/artifact/org.seedstack.addons.modelmapper/modelmapper/1.0.0/jar) so the same can be done for Dozer, quite easily.
I'm not having much time to work on this but if you have some time to contribute it, I would be delighted. I can setup the repository and the release process for the new add-on if you want to start on this.
Suppose a Person aggregate and DTO :
In a standard workflow, we would create a PersonDTO without
id
in a interface and send it to the server. The server would then merge it into a freshly created aggregate :The default factory will create a UUID as identity with the IdentityService, but when the actual mapping will happen, the
null
value of the DTO'sid
will override the generatedid
of the aggregate.One workaround is to call the identity service again after the merge.