我有2个表单位和unit_hier。 unit表包含一些静态数据,unit_hier表包含层次关系。
**UNIT TABLE**
UNIT_ID UNIT_NAME DESC
1 Test1 Test 1
2 Test2 Test 2
3 Test3 Test 3
4 Test4 Test 4
5 Test5 Test 5
6 Test6 Test 6
7 Test7 Test 7
8 Test8 Test 8
9 Test9 Test 9
10 Test10 Test 10
11 Test11 Test 11
12 Test12 Test 12
13 Test13 Test 13
14 Test14 Test 14
**UNIT_Hier Table**
PARENT_UNIT_ID CHILD_UNIT_ID
1 2
1 3
1 4
2 5
2 6
5 7
5 8
3 9
7 10
3 11
3 12
4 13
5 14
现在按照unit_hier表我需要构建一个响应json。
以下是预期的回应json:
{
"UNIT_ID": 1,
"UNIT_NAME": "Test1",
"DESC": "Test 1",
"childUnit":[
{"UNIT_ID": 2,
"UNIT_NAME": "Test2",
"DESC": "Test 2",
"childUnit":[
{"UNIT_ID": 5,
"UNIT_NAME": "Test5",
"DESC": "Test 5",
"childUnit":[
{"UNIT_ID": 7,
"UNIT_NAME": "Test7",
"DESC": "Test 7",
"childUnit":[
{"UNIT_ID": 10,
"UNIT_NAME": "Test10",
"DESC": "Test 10",
"childUnit":[]
}
]},
{
"UNIT_ID": 8,
"UNIT_NAME": "Test8",
"DESC": "Test 8",
"childUnit":[]
},
{
"UNIT_ID": 14,
"UNIT_NAME": "Test14",
"DESC": "Test 14",
"childUnit":[]
}
{
"UNIT_ID": 6,
"UNIT_NAME": "Test6",
"DESC": "Test 6",
"childUnit":[]
}
],
{
"UNIT_ID": 3,
"UNIT_NAME": "Test3",
"DESC": "Test 3",
"childUnit":[
{"UNIT_ID": 9,
"UNIT_NAME": "Test9",
"DESC": "Test 9",
"childUnit":[]
},
{
"UNIT_ID": 11,
"UNIT_NAME": "Test11",
"DESC": "Test 11"
"childUnit":[]
},
{
"UNIT_ID": 12,
"UNIT_NAME": "Test12",
"DESC": "Test 12",
"childUnit":[]
}
],
{
"UNIT_ID": 4,
"UNIT_NAME": "Test4",
"DESC": "Test 4",
"childUnit":[
{"UNIT_ID": 13,
"UNIT_NAME": "Test13",
"DESC": "Test 13",
"childUnit":[]
}
]
}
}
}
问题是我尝试简单地解析数据。我只获得1级解析但我需要让所有孩子直到最后一个没有孩子的元素。
答案 0 :(得分:0)
JPA通过普通支持递归父/子关系 双向@ ManyToOne / @ OneToMany 您的表结构需要更改才能使用它。您不需要单独的层次结构表。只需将parentId列添加到主表中,然后通过双向映射。