从sql server加载数据以在java中创建类似树的最佳方法是什么。
我有
+----+--------+-------+
| ID | Parent | Title |
+----+--------+-------+
| 1 | NULL | First |
| 2 | 1 | AAAAA |
| 3 | 1 | BBBBB |
| 4 | 2 | CCCCC |
+----+--------+-------+
我想加载对象(如id为1的对象).getChild()。getChild()。getTitle()返回CCCCC
我是否必须遍历sql结果并再次加载孩子?还是有最好的方法?感谢
答案 0 :(得分:0)
解决此问题的一种方法是在MySQL中创建一个视图,该视图可以返回在Parent = ID上连接到自身的原始表的表,其中相应的ID作为新的子列。 你可以根据需要多次调用这样的视图来遍历子链接并获得标题
对于您给出的示例:
Given the view
Children
+----+-------+
| ID | CHILD |
+----+-------+
| 1 | 2 |
| 1 | 3 |
| 2 | 4 |
+----+-------+
Select OT.Title
From OriginalTable AS OT
INNER JOIN Children AS CID on OT.ID = CID.ID
INNER JOIN Children AS C1 on CID.CHILD = C1.ID
INNER JOIN Children AS C2 on C2.CHILD = C2.ID
WHERE OT.ID = 1
这将返回所有标题,这些标题是ID为1的元素的子元素。
您可以将其抽象为以ID作为参数的存储过程,或重复内部联接以到达第N个子项。