Проблема конвертера ModelMapper? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть следующий метод:

public Page<FindUserByIdOutput> FindAll(Pageable pageable) {

        Page<UsersEntity> foundUsers = _userManager.FindAll(pageable);
        modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
        java.lang.reflect.Type targetListType = new TypeToken<Page<FindUserByIdOutput>>() {}.getType();


        Converter<UsersEntity, FindUserByIdOutput> myConverter = new Converter<UsersEntity, FindUserByIdOutput>()
        {
            public FindUserByIdOutput convert(MappingContext<UsersEntity, FindUserByIdOutput> context)
            {
                UsersEntity s = context.getSource();
                FindUserByIdOutput d = context.getDestination();

                Set<PermissionId> result = new HashSet<PermissionId>();
                s.getPermissions().forEach(permission -> result.add(new PermissionId(permission.getId())));

                d.setPermissions(result);
                d.setRole(new RoleId((s.getRole().getId())));
                return d;
            }
        };

        modelMapper.addConverter(myConverter);

        Page<FindUserByIdOutput> output = modelMapper.map(foundUsers, targetListType);
        modelMapper.validate();
        return output;
    }

Результат, возвращаемый этим методом "output", выглядит точно так же, как Page<UsersEntity> вместо

Page<FindUserByIdOutput>
  • другими словами, конвертер на самом деле не работает.

Примечание. Я преобразую набор PermissionsEntity в набор объектов PermissionId.Точно так же я конвертирую RoleEntity в объект RoledId.

Можете ли вы увидеть что-то не так с кодом выше?

...