This is to save the details with recursive.如何寫尋找父母和孩子
在這裏,我想從數據庫中的細節,並用遞歸方法設置成我的豆遞歸方法。所以我可以顯示在angularUi樹合成器。我如何編寫遞歸方法來設置我的bean。
我分離了家長和孩子的用rowId.you可以訪問我的樣本screen。
如: - ROWID是1父 孩子這個1是1.1 和兒童爲1.1 1.1.1這樣就會延長,,。
我保存所有的父母和孩子在一個單一的表,該表上面的影像。
會有items[]
爲每個對象(行)。如果有任何孩子父母那麼孩子將在items[]
陣列添加,如果發現孩子有任何的孩子那麼孩子將在該行的items[]
父加入...這樣就會延長。
如: - JSON對象是: -
{
"id": 1,
"rowId": "1",
"items": [
{
"id": 10,
"rowId": "1.1",
"items": [
{
"id": 100,
"rowId": "1.1.1",
"items": [
{
"id": 1000,
"rowId": "1.1.1.1",
"items": []
}
]
}
]
},
{
"id": 11,
"rowId": "1.2",
"items": []
}
]
}
我已經使用this answer.
保存這個數據,但同時retriving我面對的問題。問題是檢索時不會有任何父母和孩子,因爲數據將被保存在同一張表中。關係只有rowid。爲此,我需要編寫一個遞歸方法(如保存),並且需要將父項添加到父節點items[]
數組中。
public class AdminComponentBean{
List<MultiAdminComponent> componentListbean;
}
MultiAdminComponent.java:-
public class MultiAdminComponent {
private String componentName;
private String componentIdentification;
private String componentType;
private String componentState;
private String componentUrl;
private String rowId;
private List<MultiAdminComponent> items;
}
在這裏,我試圖以檢索所有的細節,並試圖增加孩子的到parent.But它應該做一個遞歸方法
List<MultiAdminComponent> componentList=BaseDAO.getAdminComponentDAOObject().getComponentDetails();
if(null != componentList) {
for(MultiAdminComponent itemsList : componentList){
if(itemsList.getRowId().length().equals() "1"){//here parent row will come
//by considering rowid I need to find the child of the rowId
//child of 1 is 1.1
//if 1.1 is child of 1 then I need to add that 1.1 object to `items[]` array of 1
//like this it should work recursve
}
}
}
如果你有一個父ID(assumign這就是「ROWID」的意思),應該是相當簡單的(更高的性能可能會使其更加複雜,所以我們就用簡單的堅持現在):1)獲得具有所有元素無父2),直到你沒有得到任何更多的數據做到以下幾點:一)獲得,其ROWID匹配最後加載和b)使用ROWID的附加元素加載到他們的父母元素的ID之一的所有元素映射。當你沒有獲得更多的元素時,你就完成了。 – Thomas
rowid對每一行都是獨一無二的 – Murali
@Thomas您能否給一些更清晰的點 – Murali