日期:2014-05-17  浏览次数:20725 次

JAVAWEB网站开发,一对多,多对一,主表与子表(主外键)相连接,会导致主表字段在JSP页面重复出现
表  admin
id  name
1   admin 
表  role
id   name
1    管理员 
2    用户
表 adminrole
id adminid roleid
1     1          1
2     1          2
表 admin->表 adminrole  一对多
表 role->表 adminrole 一对多
表 adminrole->表 admin 多对一
表 adminrole->表 role 多对一
select a.id,a.name,r.name
from admin a
join adminrole ar
on a.id=ar.adminid
join role r
on ar.roleid=r.id
结果
1     admin    管理员 
1     admin    用户
JSP页面,用标签循环表格会重复显示

我希望能显示这样,不要重复显示,多对一部分用下拉框代替

求大神帮帮忙,小弟没见过这种格式?求代码!!在下万分感谢!!!
是用MAP集合?键值对?MAP<实体类,List<String>>还是后台转换,还是只用List集合?
怎么搞?帮帮忙!!谢谢!!
!!!!不要混编!!!!!!
标签+后台代码==》是struts标签还是c标签无所谓

------解决方案--------------------
一个sql解决不了,就多放到几个集合里面,再向jsp页面发送
------解决方案--------------------
感觉是后台用MAP<实体类,List<String>>这种方法处理下比较好。
------解决方案--------------------
建议在hibernate.hbm.xml配置文件中加上 
<list table="role"
 <one-to-many class="role.class"
</list>

具体查看hibernate one-to-many 
------解决方案--------------------
这看起来明显是两个List,第一个是管理员ID,和管理员姓名。第二个就是权限。
------解决方案--------------------
后台查询出List后,把List再处理一下,把admin的角色都放到一条记录中(也就是role改为用List存储过个),然后前端遍历就行了
------解决方案--------------------
class admin {
    int id;
    String name;
    List<String> roleNames;
    
    //get set 方法
}
把每一个查admin出来 在查出每一个admin的同时把此id对应的role查出来加入到这个对象的List中(这需要不止一条sql语句)
 
这样不就能像实现你想要的那种显示了
------解决方案--------------------
一个人(admin)有两个角色(管理员,用户)
先把人基本信息查出来,包括ID
然后通过ID将其对应的角色查出来放到List集合里面