У меня есть следующий метод:
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.
Можете ли вы увидеть что-то не так с кодом выше?