当前做了一个外包项目 别人把DAO service 组件已经定义好了
表关系 user(用户表) role user_role(用户角色关联表) right(权限) role_right(角色权限关联表)
要求 dao层返回一个user对象 service层返回一个List 对象
当前遇到问题
[code="java"]
//利用hibernate延迟加载 “load(User.class,pk)”
ErsUser user = this.getUserDao().findByID(pk);
Set setRole = user.getErsUserRoles();
List<ErsRight> setroleright= new ArrayList<ErsRight>();
System.out.println("service 1 角色大小"+setRole.size());
Iterator<ErsRole> it = setRole.iterator();
while(it.hasNext()){
ErsRole role=(ErsRole) it.next();
System.out.println("service 2");
setroleright.addAll(role.getErsRoleRights());
}
[/code]
此句ErsRole role=(ErsRole) it.next();抱类型转换异常 setRole.size()打印结果正常,说明对象已经正常取出
因为此问题解决不了 所以求高手们帮我把
[code="java"]
Java codeString sql = " select r.id, r.parentid,r.name,r.path,r.isActivity,r.securitycode,r.moduleid "+
"from ers_user u,ers_role re, ers_user_role u_r,ers_right r,ers_role_right r_r where"+
" u.id= u_r.userid and re.id =u_r.roleid and re.id=r_r.roleid and r.id=r_r.rightid and u.id="+cuser.getId();
[/code]
这句sql语句转换为hql语句 由于水平有限 实在是想不出办法,向高手们请教解决办法
[b]问题补充:[/b]
测试员在初期添加数据时 删除了一个关联外键 搭框架时没有改,以至于出现低级 错误 郁闷坏了 周末家里给发现了