Вы можете использовать @JsonView
.Вы должны аннотировать некоторые вложенные объекты , но это не является статичной вещью, которая затем скрывает все от других DTO или около того.
Например, вы можете объявить следующие представления для использования:
public class View {
public static class AllButMyNestedObject {
}
public static class AlsoMyNestedObject
extends AllButMyNestedObject {
}
}
Затем аннотировать ваши классы, такие как:
@JsonView(AllButMyNestedObject.class)
public class MyDTO {
private MyObjectA a;
}
и
public class MyObjectA {
@JsonView(AlsoMyNestedObject.class)
private MyNestedObject b;
}
вы можете решить с помощью mapper, что сериализировать, например:
ObjectMapper mapper = new ObjectMapper();
String result = mapper
.writerWithView(View.AlsoMyNestedObject.class)
// OR .writerWithView(View.AllButNestedObject.class)
.writeValueAsString(myDto);