У меня есть этот случай:
public class Project{
private long id;
private List<User> users;
// other properties and getter setter etc
}
public class User{
@JsonView(MinimalUser.class)
private long id;
@JsonView(MinimalUser.class)
private String name;
private ComplexObject anything;
}
Теперь The RestMethod:
@JsonView(MinimalUser.class)
@GetMapping("/client/{id}")
public List<Project> findProjectsByClientId(@PathVariable long id) {
return projectService.findProjectsByClientId(id);
}
Здесь я просто хочу инициализировать проект с минимальными объектами Users, но ничего не будет инициализировано, так как в моем проекте нет JsonView "MinimalUser.class", поэтому он не инициализирован.
Я не хочу помещать аннотацию @JsonView для всех моих переменных в проекте, потому что это было бы излишним ,
Как я могу сказать контроллеру только применять @ JsonView-фильтрацию / сериализацию к пользователю (дочернему элементу) проекта?
Поскольку этот вызов работает нормально (я получаю только обязательные поля):
@JsonView(MinimalUser.class)
@GetMapping("/minimal")
public List<User> findAllUsers() {
return userService.findAllUsers();
}