FAQ |
Calendar |
![]() |
|
Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman. |
![]() |
|
Thread Tools |
#1
|
|||
|
|||
![]()
pagi agan agan.... ane punya kasus seperti ini, silahkan diliat dulu codingan ane..... ![]() Spoiler for parents: Code: public List listParents() { return (List) getHibernateTemplate().find("from Category c where c.parentId = 0 order by c.name asc"); } Spoiler for childs: Code: public List listChilds(Category category) { return (List) getHibernateTemplate().find("from Category c where c.parentId = ?", new Object[]{category.getId()}); } Spoiler for main: Code: public List listMain() { List hl = new ArrayList(); List parents = listParents(); for (Category ctg : parents) { CategoryListModelHelper cmh = new CategoryListModelHelper(); cmh.setId(ctg.getId()); cmh.setName(ctg.getName()); hl.add(cmh); List childs = listChilds(ctg); for (Category childCtg : childs) { CategoryListModelHelper cmh2 = new CategoryListModelHelper(); String name = ctg.getName() + " >> " + childCtg.getName(); cmh2.setId(childCtg.getId()); cmh2.setName(name); hl.add(cmh2); List childs2 = listChilds(childCtg); for (Category childCtg2 : childs2) { CategoryListModelHelper cmh3 = new CategoryListModelHelper(); String name2 = ctg.getName() + " >> " + childCtg.getName() + " >> "+childCtg2.getName(); cmh3.setId(childCtg2.getId()); cmh3.setName(name2); hl.add(cmh3); } } } return hl; } Jadi, ane tuh mo bikin list tree recursive yang ditampung ke dalam satu list, nah, klo pake kodingan di atas, ane cuman bisa sampe level 2 doang, sedangkan kalo dari DB nya itu, level nya bisa unlimited, misal: Kategori level 0 ==> KatRoot Kategori level 1 ==> KatChild1 Kategori level 2 ==> KatChild2 klo dirangkum, jadinya ==> KatRoot >> KatChild1 >> KatChild2 Nah, itu klo hanya sampe level dua, klo levelnya lebih dari itu, ada ide gan ![]() bingung nih...., dan sepertinya kodingan ane pun bakal kurang efisien, karena ada looping di dalam looping..... beneran deh gan, dah pusing banget ane.... ![]() tolong dibantu yaaa...... ![]() ![]() Terkait:
|
![]() |
|
|