Я хотел упростить свой вопрос.У меня есть родительский и дочерний объект.
public class Parent {
private String name;
@OneToMany
private List<Child> childs;
}
и
public class Child {
private String name;
@ManyToOne
private Parent parent;
}
То, что я хочу сделать, - это когда я сериализую эти объекты, это должно понравиться.
{
"parentList": [
{
"id": "1",
"name": "parent",
"childs": [
{
"id": "1",
"name": "chiled",
"parent" : "1"
}
],
}
]
}
и
{
"childList": [
{
"id": "1",
"name": "child",
"parent": [
{
"id": "1",
"name": "parent",
"childs": [
{
"id": "1",
}
}
],
}
]
}
Например:
Parent -> Child -> parentID
Child -> Parent -> childID
Если я обновлю свои сущности, как показано ниже.
public class Parent {
private String name;
@JsonIdentityReference(alwaysAsId = true)
@OneToMany
private List<Child> childs;
}
и
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class Child {
private String name;
@JsonIdentityReference(alwaysAsId = true)
@ManyToOne
private Parent parent;
}
С этой настройкой я получаю почти , что я хочу.
Child -> Parent -> ChildID (good)
Parent -> ChildID (bad)
Мне нужно, чтобы у Parent была целая сущность Child, и у этой сущности Child должен быть только parentID.Если я добавлю @JsonIdentityInfo
к обеим сущностям, то результат будет выглядеть следующим образом:
Child -> parentID (bad)
Parent -> childID (bad)
Если я удаляю @JsonIdentityInfo
из обеих, то у меня снова возникает рекурсивная проблема.
Незнаю, как получить то, что я хочу.