牛逼hibernate执行sql

来源:百度知道 编辑:UC知道 时间:2024/06/24 05:28:07
String sql="select t.id,t.img,t.name,t.url,t.sort,t.mt,t.parentid,t.leaf from SysMenu t, where t.id in(select ts.mid from SysMenumid ts)";
以上有三个表SysMenu SysMenumid
hibernate执行this.getHqlList(sql)如下
可以返回size为6.
List<SysMenu> hql=this.getHqlList(sql);//强转为SysMenu
for(int j=0;j<hql.size();j++){
System.out.println(hql.get(0).getName()); 出现转换异常。
}
这怎么回事啊?执行上面sql返回的是上面啊!
执行下面的也是错误。郁闷啊
Iterator iterator1 =this.getHqlList(sql).iterator();
while (iterator1.hasNext()) {
SysMenu bean = new SysMenu();
Object[] o = (Object[]) iterator1.next();
SysMenu p = (SysMenu) o[1];
System.out.println(p.getName());
}

求救?要怎么转换?

转换的地方应该这么写。
List<SysMenu> hql=this.getHqlList(sql);
for(int j=0;j<hql.size();j++){
SysMenu sm = (SysMenu)hql.get(i);
System.out.println(sm.getName());
}

最好hql这么写:
from SysMenu t where t.id in(select ts.mid from SysMenumid ts)";

List<SysMenu> hql=this.getHqlList(sql);//强转为SysMenu
for(int j=0;j<hql.size();j++){
System.out.println(hql.get(0).getName()); 出现转换异常。
}
检查下这里类型是否匹配。