一对多结构的数据,
如:班级(c)--学生(s)    c1  ------    s11
                  s12
                    s13
     c2 -------    s21
                  s22
                  s23从数据库中取得 c1 ,c2  并通过Hibernate 的一对多映射取得它们反对应的学生。
问题是: 以什么样的数据结构把 这样的数据存到Session 中,并传到页面(班级,学生,都要是有序的),
           是入到ArrayList,还是入到  TreeMap 里面呀,
小弟是这样想的,
1, 放ArrayList中:      (简单说就是两个ArrayList,一个放班级,一个放学生,
                      [放学生的ArrayList中,存的是每个班级里的学生集合])
          ClassList:           0      c1
                               1      c2          StudentList :        0      Class1StudentList:     0     s11
                                                             1     s12
                                                             2     s13                               1      Class@StudentList:     0     s21
                                                             1     s22
                                                             2     s23      
2,  放到TreeMap中:   (键值分别为班级和学生)
    map         c1             s11
                c1             s12
                c1             s13
                c2             s21
                c2             s22
                c3             s23
不知道上面哪种方法可行,如果可行的话,,大家一般都用哪种方法呀,???
 
                      
        

解决方案 »

  1.   

    根据需要才查
    根据班级查学生
    根据学生查班级你这样把数据全部查出来再组织,内存成了你放数据的地方了(--这样的数据存到Session 中)
    数据太不不建议这样用如果硬是要用的话就用MAP
       MAPKEY :C1(班级)VALUE(Object):C1List(班级所有人的LIST);
      

  2.   

    类 班级{
      班级编号
      学生对象
    }
    类 学生{
     学生编号
    }
    list.add( 班级对象)页面显示${list.班级.学生对象.学生属性}
      

  3.   

    要充分利用HIBERNATE的特性啊
    如果你用HIEBERNATE反向生成实体映射类了,并且你的数据库表中有实体映射关系,那你生成的班级实体类中就 应该有 一个set容器 存放你的student对象还需要在 班级.heb.xml  文件中 在<set>里加入 lazy=false然后将获取的班级对象存入request 中 再前端  结合struts标签 遍历每个    班级.students[i]就可以拿到班级对象里的student可能说的有点乱,不知道你能不能看明白
      

  4.   

    C1班的数据存为一个List{S11,S12,S13}
    ........
    把各个班存为ArrayList{C1(List结构),C2,......}前台调用就行了。