我在 postgres 数据库中有以下记录。parent_pk 与父子关系中的 pk 相关。
pk 名称类型 parent_pk
--- ---- ---- ---------
1 hnumber101 房子 0
2 hnumber201 房子 0
101 dodge_charger 车辆 1
102野马车1
103 民用车 2
301约翰用户101
302 爱德华用户 102
303 约翰用户 102
304 约翰用户 103
我想从上面生成一个json,格式如下-
[ {
“身份证”:1,
“名称”:“hnumber101”,
“类型”:“房子”
“孩子”: [ {
“身份证”:101,
"name": "道奇充电器",
“类型”:“车辆”
“孩子”: [{
“身份证”:301,
“姓名”:“约翰”,
“类型”:“用户”
}],
},
{
“身份证”:102,
“名称”:“野马”,
“类型”:“车辆”
“孩子”: [{
“身份证”:303,
“姓名”:“约翰”,
“类型”:“用户”
},
{
“身份证”:302,
“姓名”:“爱德华”,
“类型”:“用户”
}],
}],
},
{
“身份证”:2,
“名称”:“hnumber201”,
“类型”:“房子”
“孩子”: [ {
“身份证”:103,
“名称”:“公民”,
“类型”:“车辆”
“孩子”: [{
“身份证”:304,
“姓名”:“约翰”,
“类型”:“用户”
}],
}],
}]
我曾尝试使用 WITH RECURSIVE 查询,但这会产生条目列表,然后我必须在我的 java 代码中进行大量循环/散列映射,才能在父级中获取该子块。最有效的方法是什么?