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条)

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流