隔层获取数据,有什么好方法。例如:学校-班级-组-学生 ,彼此是上下级关联,没有跳级关联。(即,班级里有学校学校id,组里面有班级id,学生里有组id)。现在我想知道一个学校里的总学生数有什么办法?目前我的解决方法是,嵌套循环,然后设置计数值,迭代出来。请问各位有什么好的方法、》java、sql、hibernate、思路、等等都可以。迭代JavaSQLHibernate行业数据

解决方案 »

  1.   

    如果你这种需求比较大的话 建议在学生表里面加上schoolid 不然只能循环嵌套了
      

  2.   

    表左关联,然后count
    select count(1) from 学校 left join 班级 left join 组 left join 学生;
      

  3.   

    但是id好像还是要迭代啊,每一层都需要上一层的id,这个我考虑过不过没有测试.
      

  4.   

    但是id好像还是要迭代啊,每一层都需要上一层的id,这个我考虑过不过没有测试.
    直接在SQL里面写还好吧,如果你的表设计成这种样子确实没有办法。
      

  5.   

    HQL 
    select count(stu) from Student stu where stu.group(学生表对应的组实体).Class(班级).School=?
      

  6.   


    这个确实可以,可惜我没有用hibernate 。
      

  7.   

    如果可以改变存储结构,推荐LZ看篇文章,
    http://shiningray.cn/hierarchical-data-database.html
    用这种方法存储层次数据,查询变得非常简单,但是插入会变得稍微复杂。