MapStruct - Конвертер для возвращаемого значения типа не найден

Я хочу использовать записи из java 14 с сущностью (из сохраняемости java). Я пытаюсь сопоставить своего пользователя с userDto, и мой отладчик показывает, что все правильно сопоставлено. Но, к сожалению, я получил ошибку, когда хочу распечатать свой userDto:

Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class xxx.UserMicroservice.dto.UserDto]

Что я делаю не так?

public interface UserMapper {
    UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

    UserDto mapToUserDto(User user);
}

public class UserMapperImpl implements UserMapper {

    @Override
    public UserDto mapToUserDto(User user) {
        if(user == null) {
            return null;
        }
        UserDto userDto = new UserDto(user.getName(), user.getEmail(), user.getImageUrl());
        return userDto;
    }

}
public record UserDto(
        String name,
        String email,
        String imageUrl) {}
@RestController
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping("/user/me")
    @PreAuthorize("hasRole('USER')")
    public UserDto getCurrentUser(@CurrentUser UserPrincipal userPrincipal) {
        UserDto userDto = UserMapper.INSTANCE.mapToUserDto(userRepository.findById(userPrincipal.getId())
                .orElseThrow(() -> new ResourceNotFoundException("User", "id", userPrincipal.getId())));
        return userDto;
    }
}

0 ответов

Другие вопросы по тегам