レコード選択に基づいてテーブルの名前のリストが必要です。再帰繰り返し値を使用してJavaの文字列リストに入る
たとえば、Id = 1を選択した場合、子のすべての子でリスト値(A、b、c、d)が必要です。
以下は私のテーブルデータです。
ID(1,2,3,4,5)名(A、B、C、D、E)ParentIdは( - 、1,1,3、 - )
後は、再帰のために私のコードです
public List<String> selectData(int orgId) {
String parentId = String.valueOf(orgId);
List<Object> listData = selectAllData();// here parent select
List<String> returnList = new ArrayList<String>();
for (Object parents : listData) {
List<String> list = this.getChildFor(parents.getId());
for (String child : list) {
returnList.add(child);
}
}
for(String enty : listData){
returnList.add(enty);
}
return returnList;
}
public List<String> getChildFor(int orgId) {
String parentId = String.valueOf(orgId);
int pId = 0;
List<Object> listData = selectByExample(); // here child select from all record based on orgId.
List<String> returnList = new ArrayList<String>();
do {
for (Object parents : listData) {
returnList.add(parents.name);
List<String> list = this.getChildFor(parents.getId);
for (String child : list) {
returnList.add(child.getname());
}
}
pId = 0;
} while (pId != 0);
for(String enty : listData){
returnList.add(enty);
}
listData = null;
return returnList;
}
"returnList"リストに重複した値があります。 誰もがこの感謝について私に考えを与える。
に追加されますので、
を削除するようにしてください? –
Id 1を選択すると、(a、b、a、b、c、d)のような値が得られます。私は必要なid 1(a、b、c、d)のように子供のすべての子どもと一緒に価値が必要です。 – VJM