По какой-то причине JsonIdentityInfo сериализует глубину одного дочернего элемента, но не другого. Мой пример:
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "id")
class A {
private long id;
private B last;
// Getters, setters...
}
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "id")
class B {
private long id;
private A a;
private C c1;
private C c2;
// Getters, setters...
}
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "id")
class C {
private long id;
private Set<A> as;
private B last;
// Getters, setters...
}
Я сериализую объект B, он сериализует дочерний A a до некоторой глубины, сериализует C c1 до нескольких уровней. Но C c2 получает только ссылку.
Я хочу, чтобы A a; C c1; C c2; сериализовался только до первой глубины или также включал c2 независимо от глубины.




Просто используйте аннотацию @JsonUnwrapped для свойства c1 и c2 в классе B. т.е.
@JsonIdentityInfo(generator =
ObjectIdGenerators.IntSequenceGenerator.class, property = "id")
class B {
private long id;
private A a;
@JsonUnwrapped
private C c1;
@JsonUnwrapped
private C c2;
// Getters, setters...
}