有个树型控件,单击上面任意一点,讲所有子结点及内容都显示出来.一共用到两个表-categorys和books,books和categorys有多对一关系,而且categorys和本身也有一个一对多关系。 |
|
5分 |
哦,如果categorys和本身也有对应关系的话,那就好说了啊,可以试着这么写:
………… select b from Books b,Categorys c1,Categorys c2 where b.categorys_id = b.id and b.parent_id = c.id ……….. 当然,里面还应该加其他的一些判断条件,判断Categorys是第一层的还是第二层的 |
5分 |
不一定要一句sql取吧?取到一层以后递归去取下一层不就可以了?按深度遍历树节点嘛
|
是不是写错了。
是categorys 和本身有一个关系. |
|
li_d_s说清楚点好吗?急!
|
|
-_-!写错了
select b from Books b,Categorys c1,Categorys c2 where b.categorys_id = c1.id and c1.parent_id = c2.id |
|
这也不能实现动态啊?
你这只有两层,如果是三层甚至更多了呢? |
|
比如从categorys中id为0的节点开始取,
public List buildCategoryTree(rootid){ List result = new ArrayList();//存放最终结果 //根据rootid查找其子节点 List subCategory = findByParentId(rootid); //循环子节点信息 if(subCategory.size() == 0) result.add(rootid);//如果没有子节点,把自己加入 else{ for(Iterator subItr = subCategory.iterator(); subItr.hasNext();){ Category cg = (Category)subCategory.next(); result.addAll(buildCategoryTree(cb.getId()); } } return result; } 这里只是单纯的建Category树的方法,如果还要加入Book的话要麻烦一些,自己按照这个思路写 |
|
我试一下,谢谢你
|
|
5分 |
Java技术交流 QQ群:3701756
|
5分 |
关注
|