Skip to content

FluentAssembler overrides generated aggregate identity #91

@Magador

Description

@Magador

Suppose a Person aggregate and DTO :

public class Person extends BaseAggregateRoot<UUID> {
    @Identity(handler = UUIDHandler.class)
    private UUID id;
    private String name;
}
public class PersonDTO {
    private UUID id;
    private String name;
}

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 :

fluentAssembler.merge(personDTO).into(Person.class).fromFactory();

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's id will override the generated id of the aggregate.

One workaround is to call the identity service again after the merge.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions