ycyu08 2009-07-24 21:46
浏览 245
已采纳

基于SSH的权限问题HQL语句查询

当前做了一个外包项目 别人把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]
测试员在初期添加数据时 删除了一个关联外键 搭框架时没有改,以至于出现低级 错误 郁闷坏了 周末家里给发现了

  • 写回答

2条回答 默认 最新

  • fdsafds 2009-07-24 22:18
    关注

    Set setRole = user.getErsUserRoles();

    debug 一下看 setRole 是什么对象

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集